b7f6c3bc3df8cb9378187989b3880dc5f4deb0f9
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.ui.tests / src / org / eclipse / tracecompass / tmf / ui / tests / trace / CustomXmlIndexTest.java
1 /*******************************************************************************
2 * Copyright (c) 2009, 2014 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
16 package org.eclipse.tracecompass.tmf.ui.tests.trace;
17
18 import java.io.BufferedWriter;
19 import java.io.File;
20 import java.io.FileWriter;
21 import java.text.SimpleDateFormat;
22 import java.util.Date;
23
24 import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException;
25 import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomXmlTrace;
26 import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomXmlTraceDefinition;
27 import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
28 import org.eclipse.tracecompass.tmf.core.trace.indexer.ITmfTraceIndexer;
29
30 /**
31 * Test suite for indexing using a CustomXmlTrace.
32 *
33 * @author Marc-Andre Laperle
34 */
35 public class CustomXmlIndexTest extends AbstractCustomTraceIndexTest {
36
37 private static final String TRACE_DIRECTORY = TmfTraceManager.getTemporaryDirPath() + File.separator + "dummyXmlTrace";
38 private static final String TRACE_PATH = TRACE_DIRECTORY + File.separator + "test.xml";
39 private static final String DEFINITION_PATH = "tracesets" + File.separator + "xml" + File.separator + "testDefinition.xml";
40
41 private static CustomXmlTraceDefinition createDefinition() {
42 CustomXmlTraceDefinition[] definitions = CustomXmlTraceDefinition.loadAll(new File(DEFINITION_PATH).toString());
43 return definitions[0];
44 }
45
46 @Override
47 protected String getTraceDirectory() {
48 return TRACE_DIRECTORY;
49 }
50
51 @Override
52 protected TestTrace createTrace() throws Exception {
53 CustomXmlTraceDefinition definition = createDefinition();
54 final File file = new File(TRACE_PATH);
55 try (BufferedWriter writer = new BufferedWriter(new FileWriter(file));) {
56 writer.write("<trace>");
57 for (int i = 0; i < NB_EVENTS; ++i) {
58 SimpleDateFormat f = new SimpleDateFormat(TIMESTAMP_FORMAT);
59 String eventStr = "<element time=\"" + f.format(new Date(i)) + "\">message</element>\n";
60 writer.write(eventStr);
61 }
62 writer.write("</trace>");
63 }
64
65 return new TestXmlTrace(file.toString(), definition, BLOCK_SIZE);
66 }
67
68 private class TestXmlTrace extends CustomXmlTrace implements TestTrace {
69 public TestXmlTrace(String path, CustomXmlTraceDefinition createDefinition, int blockSize) throws TmfTraceException {
70 super(null, createDefinition, path, blockSize);
71 }
72
73 @Override
74 protected ITmfTraceIndexer createIndexer(int interval) {
75 return new TestIndexer(this, interval);
76 }
77
78 @Override
79 public TestIndexer getIndexer() {
80 return (TestIndexer) super.getIndexer();
81 }
82 }
83 }
This page took 0.046086 seconds and 4 git commands to generate.