tmf: Move TmfTraceType and custom parsers to tmf.core
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui.tests / src / org / eclipse / linuxtools / tmf / ui / tests / trace / CustomXmlIndexTest.java
CommitLineData
032ecd45
MAL
1/*******************************************************************************
2 * Copyright (c) 2009, 2013 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Francois Chouinard - Initial API and implementation
11 * Francois Chouinard - Adapted for TMF Trace Model 1.0
12 * Alexandre Montplaisir - Port to JUnit4
13 * Marc-Andre Laperle - Adapted to CustomXmlTrace
14 *******************************************************************************/
15
16package org.eclipse.linuxtools.tmf.ui.tests.trace;
17
18import java.io.BufferedWriter;
19import java.io.File;
20import java.io.FileWriter;
21import java.text.SimpleDateFormat;
22import java.util.Date;
23
032ecd45 24import org.eclipse.linuxtools.tmf.core.exceptions.TmfTraceException;
47aafe74
AM
25import org.eclipse.linuxtools.tmf.core.parsers.custom.CustomXmlTrace;
26import org.eclipse.linuxtools.tmf.core.parsers.custom.CustomXmlTraceDefinition;
ab186fbb 27import org.eclipse.linuxtools.tmf.core.trace.indexer.ITmfTraceIndexer;
032ecd45
MAL
28
29/**
30 * Test suite for indexing using a CustomXmlTrace.
31 *
32 * @author Marc-Andre Laperle
33 */
34public class CustomXmlIndexTest extends AbstractCustomTraceIndexTest {
35
36 private static final String TRACE_DIRECTORY = System.getProperty("java.io.tmpdir") + File.separator + "dummyXmlTrace";
37 private static final String TRACE_PATH = TRACE_DIRECTORY + File.separator + "test.xml";
38 private static final String DEFINITION_PATH = "tracesets" + File.separator + "xml" + File.separator + "testDefinition.xml";
39
40 private static CustomXmlTraceDefinition createDefinition() {
41 CustomXmlTraceDefinition[] definitions = CustomXmlTraceDefinition.loadAll(new File(DEFINITION_PATH).toString());
42 return definitions[0];
43 }
44
45 @Override
46 protected String getTraceDirectory() {
47 return TRACE_DIRECTORY;
48 }
49
50 @Override
51 protected TestTrace createTrace() throws Exception {
52 CustomXmlTraceDefinition definition = createDefinition();
53 final File file = new File(TRACE_PATH);
ab410d88
AM
54 try (BufferedWriter writer = new BufferedWriter(new FileWriter(file));) {
55 writer.write("<trace>");
56 for (int i = 0; i < NB_EVENTS; ++i) {
57 SimpleDateFormat f = new SimpleDateFormat(TIMESTAMP_FORMAT);
58 String eventStr = "<element time=\"" + f.format(new Date(i)) + "\">message</element>\n";
59 writer.write(eventStr);
60 }
61 writer.write("</trace>");
032ecd45 62 }
032ecd45
MAL
63
64 return new TestXmlTrace(file.toString(), definition, BLOCK_SIZE);
65 }
66
67 private class TestXmlTrace extends CustomXmlTrace implements TestTrace {
68 public TestXmlTrace(String path, CustomXmlTraceDefinition createDefinition, int blockSize) throws TmfTraceException {
69 super(null, createDefinition, path, blockSize);
ab186fbb
MAL
70 }
71
72 @Override
73 protected ITmfTraceIndexer createIndexer(int interval) {
74 return new TestIndexer(this, interval);
032ecd45
MAL
75 }
76
77 @Override
78 public TestIndexer getIndexer() {
79 return (TestIndexer) super.getIndexer();
80 }
81 }
82}
This page took 0.029303 seconds and 5 git commands to generate.