1 package org
.eclipse
.linuxtools
.lttng
.core
.tests
.trace
;
6 import junit
.framework
.TestCase
;
8 import org
.eclipse
.core
.runtime
.FileLocator
;
9 import org
.eclipse
.core
.runtime
.Path
;
10 import org
.eclipse
.linuxtools
.internal
.lttng
.core
.event
.LttngLocation
;
11 import org
.eclipse
.linuxtools
.internal
.lttng
.core
.trace
.LTTngTrace
;
12 import org
.eclipse
.linuxtools
.tmf
.core
.event
.TmfEvent
;
13 import org
.eclipse
.linuxtools
.tmf
.core
.event
.TmfTimestamp
;
14 import org
.eclipse
.linuxtools
.tmf
.core
.trace
.TmfContext
;
15 import org
.osgi
.framework
.FrameworkUtil
;
18 Functions tested here :
19 public LTTngTrace(String path) throws Exception
20 public LTTngTrace(String path, boolean skipIndexing) throws Exception
22 public TmfTraceContext seekLocation(Object location) {
23 public TmfTraceContext seekEvent(TmfTimestamp timestamp) {
24 public TmfTraceContext seekEvent(long position) {
26 public TmfEvent getNextEvent(TmfTraceContext context) {
27 public Object getCurrentLocation() {
29 public LttngEvent parseEvent(TmfTraceContext context) {
31 public int getCpuNumber() {
34 @SuppressWarnings("nls")
35 public class LTTngTraceTest
extends TestCase
{
37 private final static String tracepath1
="traceset/trace-15316events_nolost_newformat";
38 private final static String wrongTracePath
="/somewhere/that/does/not/exist";
40 private final static int traceCpuNumber
=1;
42 private final static boolean skipIndexing
=true;
44 private final static long firstEventTimestamp
= 13589759412128L;
45 private final static long secondEventTimestamp
= 13589759419903L;
46 private final static Long locationAfterFirstEvent
= 13589759412128L;
48 private final static String tracename
= "traceset/trace-15316events_nolost_newformat";
50 private final static long indexToSeekFirst
= 0;
51 private final static Long locationToSeekFirst
= 13589759412128L;
52 private final static long contextValueAfterFirstEvent
= 13589759412128L;
53 private final static String firstEventReference
= tracename
+ "/metadata_0";
56 private final static long timestampToSeekTest1
= 13589826657302L;
57 private final static Long indexToSeekTest1
= 7497L;
58 private final static long locationToSeekTest1
= 13589826657302L;
59 private final static long contextValueAfterSeekTest1
= 13589826657302L;
60 private final static String seek1EventReference
= tracename
+ "/vm_state_0";
61 private final static long seekTimestamp
= 13589826657302L;
62 private final static long nextEventTimestamp
= 13589826659739L;
63 private final static long nextnextEventTimestamp
= 13589826662017L;
65 private final static long timestampToSeekLast
= 13589906758692L;
66 private final static Long indexToSeekLast
= 15315L;
67 private final static long locationToSeekLast
= 13589906758692L;
68 private final static long contextValueAfterSeekLast
= 13589906758692L;
69 private final static String seekLastEventReference
= tracename
+ "/kernel_0";
71 private static LTTngTrace testStream
= null;
72 private LTTngTrace
prepareStreamToTest() {
73 if (testStream
== null)
75 final URL location
= FileLocator
.find(FrameworkUtil
.getBundle(this.getClass()), new Path(tracepath1
), null);
76 final File testfile
= new File(FileLocator
.toFileURL(location
).toURI());
77 final LTTngTrace tmpStream
= new LTTngTrace(null, testfile
.getPath(), false);
78 testStream
= tmpStream
;
80 catch (final Exception e
) {
81 System
.out
.println("ERROR : Could not open " + tracepath1
);
85 testStream
.seekEvent(0L);
91 public void testTraceConstructors() {
92 // Default constructor
93 // Test constructor with argument on a wrong tracepath, skipping indexing
95 new LTTngTrace(null, wrongTracePath
, skipIndexing
);
96 fail("Construction with wrong tracepath should fail!");
98 catch( final Exception e
) {
101 // Test constructor with argument on a correct tracepath, skipping indexing
103 final URL location
= FileLocator
.find(FrameworkUtil
.getBundle(this.getClass()), new Path(tracepath1
), null);
104 final File testfile
= new File(FileLocator
.toFileURL(location
).toURI());
105 new LTTngTrace(null, testfile
.getPath(), skipIndexing
);
107 catch( final Exception e
) {
108 fail("Construction with correct tracepath failed!");
110 // System.out.println("Test completed");
113 public void testGetNextEvent() {
114 TmfEvent tmpEvent
= null;
115 final LTTngTrace testStream1
= prepareStreamToTest();
117 final TmfContext tmpContext
= new TmfContext(null, 0);
118 // We should be at the beginning of the trace, so we will just read the first event now
119 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
120 assertNotSame("tmpEvent is null after first getNextEvent()",null,tmpEvent
);
121 assertEquals("tmpEvent has wrong timestamp after first getNextEvent()",firstEventTimestamp
,tmpEvent
.getTimestamp().getValue() );
123 // Read the next event as well
124 tmpEvent
= testStream1
.readNextEvent( tmpContext
);
125 assertNotSame("tmpEvent is null after second getNextEvent()",null,tmpEvent
);
126 assertEquals("tmpEvent has wrong timestamp after second getNextEvent()",secondEventTimestamp
,tmpEvent
.getTimestamp().getValue() );
129 public void testParseEvent() {
130 TmfEvent tmpEvent
= null;
131 final LTTngTrace testStream1
= prepareStreamToTest();
133 final TmfContext tmpContext
= new TmfContext(null, 0);
134 // We should be at the beginning of the trace, so we will just parse the first event now
135 tmpEvent
= testStream1
.parseEvent(tmpContext
);
136 assertNotSame("tmpEvent is null after first parseEvent()",null,tmpEvent
);
137 assertEquals("tmpEvent has wrong timestamp after first parseEvent()",firstEventTimestamp
,tmpEvent
.getTimestamp().getValue() );
139 // Use parseEvent again. Should be the same event
140 tmpEvent
= testStream1
.parseEvent(tmpContext
);
141 assertNotSame("tmpEvent is null after first parseEvent()",null,tmpEvent
);
142 assertEquals("tmpEvent has wrong timestamp after first parseEvent()",firstEventTimestamp
,tmpEvent
.getTimestamp().getValue() );
145 public void testSeekEventTimestamp() {
146 TmfEvent tmpEvent
= null;
147 TmfContext tmpContext
= new TmfContext(null, 0);
148 final LTTngTrace testStream1
= prepareStreamToTest();
150 // We should be at the beginning of the trace, we will seek at a certain timestamp
151 tmpContext
= testStream1
.seekEvent(new TmfTimestamp(timestampToSeekTest1
, (byte) -9, 0));
152 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
153 assertNotSame("tmpContext is null after first seekEvent()",null,tmpContext
);
154 assertEquals("tmpContext has wrong timestamp after first seekEvent()",contextValueAfterSeekTest1
,((TmfTimestamp
)tmpEvent
.getTimestamp()).getValue() );
155 assertNotSame("tmpEvent is null after first seekEvent()",null,tmpEvent
);
156 assertTrue("tmpEvent has wrong reference after first seekEvent()", seek1EventReference
.contains(tmpEvent
.getReference()));
158 // Seek to the last timestamp
159 tmpContext
= testStream1
.seekEvent(new TmfTimestamp(timestampToSeekLast
, (byte) -9, 0));
160 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
161 assertNotSame("tmpContext is null after seekEvent() to last",null,tmpContext
);
162 assertEquals("tmpContext has wrong timestamp after seekEvent() to last",contextValueAfterSeekLast
,((TmfTimestamp
)tmpEvent
.getTimestamp()).getValue() );
163 assertNotSame("tmpEvent is null after seekEvent() to last ",null,tmpEvent
);
164 assertTrue("tmpEvent has wrong reference after seekEvent() to last", seekLastEventReference
.contains(tmpEvent
.getReference()));
166 // Seek to the first timestamp (startTime)
167 tmpContext
= testStream1
.seekEvent(new TmfTimestamp(firstEventTimestamp
, (byte) -9, 0));
168 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
169 assertNotSame("tmpEvent is null after seekEvent() to start ",null,tmpEvent
);
170 assertTrue("tmpEvent has wrong reference after seekEvent() to start", firstEventReference
.contains(tmpEvent
.getReference()));
171 assertNotSame("tmpContext is null after seekEvent() to first",null,tmpContext
);
172 assertEquals("tmpContext has wrong timestamp after seekEvent() to first",contextValueAfterFirstEvent
,((TmfTimestamp
)tmpEvent
.getTimestamp()).getValue() );
175 public void testSeekEventIndex() {
176 TmfEvent tmpEvent
= null;
177 TmfContext tmpContext
= new TmfContext(null, 0);
178 final LTTngTrace testStream1
= prepareStreamToTest();
180 // We should be at the beginning of the trace, we will seek at a certain timestamp
181 tmpContext
= testStream1
.seekEvent(indexToSeekTest1
);
182 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
183 assertNotSame("tmpContext is null after first seekEvent()",null,tmpContext
);
184 assertEquals("tmpContext has wrong timestamp after first seekEvent()",contextValueAfterSeekTest1
,((TmfTimestamp
)tmpEvent
.getTimestamp()).getValue() );
185 assertNotSame("tmpEvent is null after first seekEvent()",null,tmpEvent
);
186 assertTrue("tmpEvent has wrong reference after first seekEvent()", seek1EventReference
.contains(tmpEvent
.getReference()));
188 // Seek to the last timestamp
189 tmpContext
= testStream1
.seekEvent(indexToSeekLast
);
190 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
191 assertNotSame("tmpContext is null after first seekEvent()",null,tmpContext
);
192 assertEquals("tmpContext has wrong timestamp after first seekEvent()",contextValueAfterSeekLast
,((TmfTimestamp
)tmpEvent
.getTimestamp()).getValue() );
193 assertNotSame("tmpEvent is null after seekEvent() to last ",null,tmpEvent
);
194 assertTrue("tmpEvent has wrong reference after seekEvent() to last", seekLastEventReference
.contains(tmpEvent
.getReference()));
196 // Seek to the first timestamp (startTime)
197 tmpContext
= testStream1
.seekEvent(indexToSeekFirst
);
198 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
199 assertNotSame("tmpContext is null after first seekEvent()",null,tmpContext
);
200 assertEquals("tmpContext has wrong timestamp after first seekEvent()",contextValueAfterFirstEvent
,((TmfTimestamp
)tmpEvent
.getTimestamp()).getValue() );
201 assertNotSame("tmpEvent is null after seekEvent() to start ",null,tmpEvent
);
202 assertTrue("tmpEvent has wrong reference after seekEvent() to start", firstEventReference
.contains(tmpEvent
.getReference()));
205 public void testSeekLocation() {
206 TmfEvent tmpEvent
= null;
207 TmfContext tmpContext
= new TmfContext(null, 0);
208 final LTTngTrace testStream1
= prepareStreamToTest();
210 // We should be at the beginning of the trace, we will seek at a certain timestamp
211 tmpContext
= testStream1
.seekEvent(new LttngLocation(locationToSeekTest1
));
212 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
213 assertNotSame("tmpContext is null after first seekLocation()",null,tmpContext
);
214 assertEquals("tmpContext has wrong timestamp after first seekLocation()",contextValueAfterSeekTest1
,((TmfTimestamp
)tmpEvent
.getTimestamp()).getValue() );
215 assertNotSame("tmpEvent is null after first seekLocation()",null,tmpEvent
);
216 assertTrue("tmpEvent has wrong reference after first seekLocation()", seek1EventReference
.contains(tmpEvent
.getReference()));
218 // Seek to the last timestamp
219 tmpContext
= testStream1
.seekEvent(new LttngLocation(locationToSeekLast
));
220 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
221 assertNotSame("tmpContext is null after first seekLocation()",null,tmpContext
);
222 assertEquals("tmpContext has wrong timestamp after first seekLocation()",contextValueAfterSeekLast
,((TmfTimestamp
)tmpEvent
.getTimestamp()).getValue() );
223 assertNotSame("tmpEvent is null after seekLocation() to last ",null,tmpEvent
);
224 assertTrue("tmpEvent has wrong reference after seekLocation() to last", seekLastEventReference
.contains(tmpEvent
.getReference()));
226 // Seek to the first timestamp (startTime)
227 tmpContext
= testStream1
.seekEvent(new LttngLocation(locationToSeekFirst
));
228 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
229 assertNotSame("tmpContext is null after first seekLocation()",null,tmpContext
);
230 assertEquals("tmpContext has wrong timestamp after first seekLocation()",contextValueAfterFirstEvent
,((TmfTimestamp
)tmpEvent
.getTimestamp()).getValue() );
231 assertNotSame("tmpEvent is null after seekLocation() to start ",null,tmpEvent
);
232 assertTrue("tmpEvent has wrong reference after seekLocation() to start", firstEventReference
.contains(tmpEvent
.getReference()));
235 public void testLocationOperations() {
236 TmfEvent tmpEvent
= null;
237 TmfContext tmpContext
= new TmfContext(null, 0);
238 final LTTngTrace testStream1
= prepareStreamToTest();
240 // Test LttngLocation after a seek
241 tmpContext
= testStream1
.seekEvent(new LttngLocation(seekTimestamp
));
242 LttngLocation location
= (LttngLocation
) tmpContext
.getLocation().clone();
243 assertTrue("location has wrong flag", location
.isLastOperationSeek());
244 assertEquals("location has wrong operation time", seekTimestamp
, location
.getOperationTimeValue());
245 tmpContext
= testStream1
.seekEvent(location
);
246 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
247 assertTrue("tmpContext is null after getNextEvent()", tmpEvent
!= null);
248 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
250 // Test LttngLocation after a parse
251 tmpContext
= testStream1
.seekEvent(new LttngLocation(seekTimestamp
));
252 tmpEvent
= testStream
.parseEvent(tmpContext
);
253 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
254 location
= (LttngLocation
) tmpContext
.getLocation().clone();
255 assertTrue("location has wrong flag", location
.isLastOperationParse());
256 assertEquals("location has wrong operation time", seekTimestamp
, location
.getOperationTimeValue());
257 tmpContext
= testStream1
.seekEvent(location
);
258 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
259 assertTrue("tmpContext is null after getNextEvent()", tmpEvent
!= null);
260 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
262 // Test LttngLocation after a getNext
263 tmpContext
= testStream1
.seekEvent(new LttngLocation(seekTimestamp
));
264 tmpEvent
= testStream
.readNextEvent(tmpContext
);
265 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
266 location
= (LttngLocation
) tmpContext
.getLocation().clone();
267 assertTrue("location has wrong flag", location
.isLastOperationReadNext());
268 assertEquals("location has wrong operation time", seekTimestamp
, location
.getOperationTimeValue());
269 tmpContext
= testStream1
.seekEvent(location
);
270 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
271 assertTrue("tmpContext is null after getNextEvent()", tmpEvent
!= null);
272 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
274 // Test LttngLocation after a parse and parse
275 tmpContext
= testStream1
.seekEvent(new LttngLocation(seekTimestamp
));
276 tmpEvent
= testStream
.parseEvent(tmpContext
);
277 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
278 tmpEvent
= testStream
.parseEvent(tmpContext
);
279 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
280 location
= (LttngLocation
) tmpContext
.getLocation().clone();
281 assertTrue("location has wrong flag", location
.isLastOperationParse());
282 assertEquals("location has wrong operation time", seekTimestamp
, location
.getOperationTimeValue());
283 tmpContext
= testStream1
.seekEvent(location
);
284 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
285 assertTrue("tmpContext is null after getNextEvent()", tmpEvent
!= null);
286 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
288 // Test LttngLocation after a getNext and getNext
289 tmpContext
= testStream1
.seekEvent(new LttngLocation(seekTimestamp
));
290 tmpEvent
= testStream
.readNextEvent(tmpContext
);
291 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
292 tmpEvent
= testStream
.readNextEvent(tmpContext
);
293 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
294 location
= (LttngLocation
) tmpContext
.getLocation().clone();
295 assertTrue("location has wrong flag", location
.isLastOperationReadNext());
296 assertEquals("location has wrong operation time", nextEventTimestamp
, location
.getOperationTimeValue());
297 tmpContext
= testStream1
.seekEvent(location
);
298 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
299 assertTrue("tmpContext is null after getNextEvent()", tmpEvent
!= null);
300 assertEquals("tmpEvent has wrong timestamp", nextnextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
302 // Test LttngLocation after a getNext and parse
303 tmpContext
= testStream1
.seekEvent(new LttngLocation(seekTimestamp
));
304 tmpEvent
= testStream
.readNextEvent(tmpContext
);
305 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
306 tmpEvent
= testStream
.parseEvent(tmpContext
);
307 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
308 location
= (LttngLocation
) tmpContext
.getLocation().clone();
309 assertTrue("location has wrong flag", location
.isLastOperationParse());
310 assertEquals("location has wrong operation time", nextEventTimestamp
, location
.getOperationTimeValue());
311 tmpContext
= testStream1
.seekEvent(location
);
312 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
313 assertTrue("tmpContext is null after getNextEvent()", tmpEvent
!= null);
314 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
316 // Test LttngLocation after a parse and getNext
317 tmpContext
= testStream1
.seekEvent(new LttngLocation(seekTimestamp
));
318 tmpEvent
= testStream
.parseEvent(tmpContext
);
319 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
320 tmpEvent
= testStream
.readNextEvent(tmpContext
);
321 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
322 location
= (LttngLocation
) tmpContext
.getLocation().clone();
323 assertTrue("location has wrong flag", location
.isLastOperationReadNext());
324 assertEquals("location has wrong operation time", seekTimestamp
, location
.getOperationTimeValue());
325 tmpContext
= testStream1
.seekEvent(location
);
326 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
327 assertTrue("tmpContext is null after getNextEvent()", tmpEvent
!= null);
328 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
330 // Test LttngLocation after a parse, getNext and parse
331 tmpContext
= testStream1
.seekEvent(new LttngLocation(seekTimestamp
));
332 tmpEvent
= testStream
.parseEvent(tmpContext
);
333 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
334 tmpEvent
= testStream
.readNextEvent(tmpContext
);
335 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
336 tmpEvent
= testStream
.parseEvent(tmpContext
);
337 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
338 location
= (LttngLocation
) tmpContext
.getLocation().clone();
339 assertTrue("location has wrong flag", location
.isLastOperationParse());
340 assertEquals("location has wrong operation time", nextEventTimestamp
, location
.getOperationTimeValue());
341 tmpContext
= testStream1
.seekEvent(location
);
342 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
343 assertTrue("tmpContext is null after getNextEvent()", tmpEvent
!= null);
344 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
346 // Test LttngLocation after a parse, getNext and getNext
347 tmpContext
= testStream1
.seekEvent(new LttngLocation(seekTimestamp
));
348 tmpEvent
= testStream
.parseEvent(tmpContext
);
349 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
350 tmpEvent
= testStream
.readNextEvent(tmpContext
);
351 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
352 tmpEvent
= testStream
.readNextEvent(tmpContext
);
353 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
354 location
= (LttngLocation
) tmpContext
.getLocation().clone();
355 assertTrue("location has wrong flag", location
.isLastOperationReadNext());
356 assertEquals("location has wrong operation time", nextEventTimestamp
, location
.getOperationTimeValue());
357 tmpContext
= testStream1
.seekEvent(location
);
358 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
359 assertTrue("tmpContext is null after getNextEvent()", tmpEvent
!= null);
360 assertEquals("tmpEvent has wrong timestamp", nextnextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
362 // Test LttngLocation after a getNext, parse and parse
363 tmpContext
= testStream1
.seekEvent(new LttngLocation(seekTimestamp
));
364 tmpEvent
= testStream
.readNextEvent(tmpContext
);
365 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
366 tmpEvent
= testStream
.parseEvent(tmpContext
);
367 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
368 tmpEvent
= testStream
.parseEvent(tmpContext
);
369 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
370 location
= (LttngLocation
) tmpContext
.getLocation().clone();
371 assertTrue("location has wrong flag", location
.isLastOperationParse());
372 assertEquals("location has wrong operation time", nextEventTimestamp
, location
.getOperationTimeValue());
373 tmpContext
= testStream1
.seekEvent(location
);
374 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
375 assertTrue("tmpContext is null after getNextEvent()", tmpEvent
!= null);
376 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
378 // Test LttngLocation after a getNext, parse and getNext
379 tmpContext
= testStream1
.seekEvent(new LttngLocation(seekTimestamp
));
380 tmpEvent
= testStream
.readNextEvent(tmpContext
);
381 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
382 tmpEvent
= testStream
.parseEvent(tmpContext
);
383 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
384 tmpEvent
= testStream
.readNextEvent(tmpContext
);
385 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
386 location
= (LttngLocation
) tmpContext
.getLocation().clone();
387 assertTrue("location has wrong flag", location
.isLastOperationReadNext());
388 assertEquals("location has wrong operation time", nextEventTimestamp
, location
.getOperationTimeValue());
389 tmpContext
= testStream1
.seekEvent(location
);
390 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
391 assertTrue("tmpContext is null after getNextEvent()", tmpEvent
!= null);
392 assertEquals("tmpEvent has wrong timestamp", nextnextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
394 // Test LttngLocation after a getNext, getNext and parse
395 tmpContext
= testStream1
.seekEvent(new LttngLocation(seekTimestamp
));
396 tmpEvent
= testStream
.readNextEvent(tmpContext
);
397 assertEquals("tmpEvent has wrong timestamp", seekTimestamp
, tmpEvent
.getTimestamp().getValue());
398 tmpEvent
= testStream
.readNextEvent(tmpContext
);
399 assertEquals("tmpEvent has wrong timestamp", nextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
400 tmpEvent
= testStream
.parseEvent(tmpContext
);
401 assertEquals("tmpEvent has wrong timestamp", nextnextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
402 location
= (LttngLocation
) tmpContext
.getLocation().clone();
403 assertTrue("location has wrong flag", location
.isLastOperationParse());
404 assertEquals("location has wrong operation time", nextnextEventTimestamp
, location
.getOperationTimeValue());
405 tmpContext
= testStream1
.seekEvent(location
);
406 tmpEvent
= testStream1
.readNextEvent(tmpContext
);
407 assertTrue("tmpContext is null after getNextEvent()", tmpEvent
!= null);
408 assertEquals("tmpEvent has wrong timestamp", nextnextEventTimestamp
, tmpEvent
.getTimestamp().getValue());
411 public void testGetter() {
412 TmfEvent tmpEvent
= null;
413 final LTTngTrace testStream1
= prepareStreamToTest();
415 // Move to the first event to have something to play with
416 tmpEvent
= testStream1
.parseEvent( new TmfContext(null, 0));
418 // Test current event
419 assertNotSame("tmpEvent is null after first event",null,tmpEvent
);
420 assertTrue("tmpEvent has wrong reference after first event", firstEventReference
.contains(tmpEvent
.getReference()));
421 assertNotSame("tmpContext is null after first seekEvent()",null,testStream1
.getCurrentLocation() );
422 assertTrue("tmpContext has wrong timestamp after first seekEvent()",locationAfterFirstEvent
.equals( ((LttngLocation
)testStream1
.getCurrentLocation()).getOperationTimeValue()) );
424 // Test CPU number of the trace
425 assertSame("getCpuNumber() return wrong number of cpu",traceCpuNumber
,testStream1
.getCpuNumber() );
428 public void testToString() {
429 final LTTngTrace testStream1
= prepareStreamToTest();
431 // Move to the first event to have something to play with
432 testStream1
.parseEvent( new TmfContext(null, 0) );
434 // Just make sure toString() does not return null or the java reference
435 assertNotSame("toString returned null",null, testStream1
.toString() );
436 assertNotSame("toString is not overridded!", testStream1
.getClass().getName() + '@' + Integer
.toHexString(testStream1
.hashCode()), testStream1
.toString() );