Temporary fix to make the architecture change transparent for now (bug id 302987)
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.tests / src / org / eclipse / linuxtools / tmf / tests / trace / TmfExperimentTest.java
CommitLineData
d18dd09b 1/*******************************************************************************
75828b1a 2 * Copyright (c) 2009 Ericsson
d18dd09b
ASL
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 *******************************************************************************/
12
13package org.eclipse.linuxtools.tmf.tests.trace;
14
15import java.io.File;
d18dd09b
ASL
16import java.util.Vector;
17
d18dd09b
ASL
18import org.eclipse.linuxtools.tmf.event.TmfEvent;
19import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
20import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
75828b1a 21import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
d18dd09b 22import org.eclipse.linuxtools.tmf.trace.ITmfTrace;
75828b1a 23import org.eclipse.linuxtools.tmf.trace.TmfExperiment;
d18dd09b
ASL
24import org.eclipse.linuxtools.tmf.trace.TmfTraceStub;
25
75828b1a
FC
26import junit.framework.TestCase;
27
d18dd09b
ASL
28/**
29 * <b><u>TmfExperimentTest</u></b>
30 * <p>
31 * TODO: Implement me. Please.
32 */
33public class TmfExperimentTest extends TestCase {
34
35 private static final String DIRECTORY = "testfiles";
75828b1a 36 private static final String TEST_STREAM = "M-Test-10K";
d18dd09b 37 private static final String EXPERIMENT = "MyExperiment";
75828b1a
FC
38 private static String testfile;
39 private static int NB_EVENTS = 10000;
40 private static int fDefaultBlockSize = 1000;
d18dd09b 41
75828b1a
FC
42 private static ITmfTrace fStream;
43 private static TmfExperiment fExperiment;
d18dd09b 44
75828b1a 45 // ========================================================================
d18dd09b 46 // Housekeeping
75828b1a 47 // ========================================================================
d18dd09b
ASL
48
49 public TmfExperimentTest(String name) throws Exception {
50 super(name);
75828b1a
FC
51 String directory = new File(".").getCanonicalPath() + File.separator + DIRECTORY;
52 testfile = directory + File.separator + TEST_STREAM;
53
54 fStream = new TmfTraceStub(testfile);
55 fExperiment = new TmfExperiment(EXPERIMENT, new ITmfTrace[] { fStream }, true);
d18dd09b
ASL
56 }
57
58 @Override
59 protected void setUp() throws Exception {
60 super.setUp();
d18dd09b
ASL
61 }
62
63 @Override
64 protected void tearDown() throws Exception {
65 super.tearDown();
66 }
67
75828b1a 68 // ========================================================================
d18dd09b 69 // Constructor
75828b1a 70 // ========================================================================
d18dd09b 71
75828b1a
FC
72 public void testBasicTmfTrace() {
73 assertEquals("GetId", EXPERIMENT, fExperiment.getExperimentId());
74 assertEquals("GetEpoch", TmfTimestamp.BigBang, fExperiment.getEpoch());
d18dd09b
ASL
75 assertEquals("GetNbEvents", NB_EVENTS, fExperiment.getNbEvents());
76
77 TmfTimeRange timeRange = fExperiment.getTimeRange();
75828b1a
FC
78 assertEquals("GetTimeRange-start", 1, timeRange.getStartTime().getValue());
79 assertEquals("GetTimeRange-end", NB_EVENTS, timeRange.getEndTime().getValue());
d18dd09b
ASL
80 }
81
75828b1a 82 // ========================================================================
d18dd09b 83 // processRequest
75828b1a 84 // ========================================================================
d18dd09b
ASL
85
86 public void testProcessRequestForNbEvents() throws Exception {
87 final int blockSize = 100;
75828b1a 88 final int nbEvents = 1000;
d18dd09b
ASL
89 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
90
91 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
75828b1a 92 final TmfDataRequest<TmfEvent> request = new TmfDataRequest<TmfEvent>(range, nbEvents, blockSize) {
d18dd09b
ASL
93 @Override
94 public void handleData() {
95 TmfEvent[] events = getData();
96 for (TmfEvent e : events) {
97 requestedEvents.add(e);
98 }
99 }
100 };
75828b1a 101 fExperiment.processRequest(request, true);
d18dd09b
ASL
102
103 assertEquals("nbEvents", nbEvents, requestedEvents.size());
104 assertTrue("isCompleted", request.isCompleted());
105 assertFalse("isCancelled", request.isCancelled());
106
107 // Ensure that we have distinct events.
108 // Don't go overboard: we are not validating the stub!
109 for (int i = 0; i < nbEvents; i++) {
110 assertEquals("Distinct events", i+1, requestedEvents.get(i).getTimestamp().getValue());
111 }
112 }
113
114 public void testProcessRequestForNbEvents2() throws Exception {
115 final int blockSize = 2 * NB_EVENTS;
116 final int nbEvents = 1000;
117 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
118
119 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
75828b1a 120 final TmfDataRequest<TmfEvent> request = new TmfDataRequest<TmfEvent>(range, nbEvents, blockSize) {
d18dd09b
ASL
121 @Override
122 public void handleData() {
123 TmfEvent[] events = getData();
124 for (TmfEvent e : events) {
125 requestedEvents.add(e);
126 }
127 }
128 };
75828b1a 129 fExperiment.processRequest(request, true);
d18dd09b
ASL
130
131 assertEquals("nbEvents", nbEvents, requestedEvents.size());
132 assertTrue("isCompleted", request.isCompleted());
133 assertFalse("isCancelled", request.isCancelled());
134
135 // Ensure that we have distinct events.
136 // Don't go overboard: we are not validating the stub!
137 for (int i = 0; i < nbEvents; i++) {
138 assertEquals("Distinct events", i+1, requestedEvents.get(i).getTimestamp().getValue());
139 }
140 }
141
142 public void testProcessRequestForAllEvents() throws Exception {
75828b1a 143 final int nbEvents = -1;
d18dd09b
ASL
144 final int blockSize = 1;
145 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
75828b1a 146 int nbExpectedEvents = fExperiment.getNbEvents();
d18dd09b
ASL
147
148 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
75828b1a 149 final TmfDataRequest<TmfEvent> request = new TmfDataRequest<TmfEvent>(range, nbEvents, blockSize) {
d18dd09b
ASL
150 @Override
151 public void handleData() {
152 TmfEvent[] events = getData();
153 for (TmfEvent e : events) {
154 requestedEvents.add(e);
155 }
156 }
157 };
75828b1a 158 fExperiment.processRequest(request, true);
d18dd09b
ASL
159
160 assertEquals("nbEvents", nbExpectedEvents, requestedEvents.size());
161 assertTrue("isCompleted", request.isCompleted());
162 assertFalse("isCancelled", request.isCancelled());
163
164 // Ensure that we have distinct events.
165 // Don't go overboard: we are not validating the stub!
166 for (int i = 0; i < nbExpectedEvents; i++) {
167 assertEquals("Distinct events", i+1, requestedEvents.get(i).getTimestamp().getValue());
168 }
169 }
170
75828b1a 171 // ========================================================================
d18dd09b 172 // cancel
75828b1a 173 // ========================================================================
d18dd09b
ASL
174
175 public void testCancel() throws Exception {
176 final int nbEvents = NB_EVENTS;
177 final int blockSize = fDefaultBlockSize;
178 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
179
180 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
75828b1a 181 final TmfDataRequest<TmfEvent> request = new TmfDataRequest<TmfEvent>(range, nbEvents, blockSize) {
d18dd09b
ASL
182 @Override
183 public void handleData() {
184 TmfEvent[] events = getData();
185 for (TmfEvent e : events) {
186 requestedEvents.add(e);
187 }
188 // Cancel request after the first chunk is received
189 cancel();
190 }
191 };
75828b1a 192 fExperiment.processRequest(request, true);
d18dd09b
ASL
193
194 assertEquals("nbEvents", blockSize, requestedEvents.size());
195 assertTrue("isCompleted", request.isCompleted());
196 assertTrue("isCancelled", request.isCancelled());
197 }
75828b1a 198}
This page took 0.03413 seconds and 5 git commands to generate.