Refactor TmfTrace and dependencies - introduce ITmfTraceIndexer
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core.tests / src / org / eclipse / linuxtools / tmf / core / tests / trace / TmfTraceTest.java
CommitLineData
d18dd09b 1/*******************************************************************************
20658947
FC
2 * Copyright (c) 2009, 2010, 20112 Ericsson
3 *
d18dd09b
ASL
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
20658947 8 *
d18dd09b
ASL
9 * Contributors:
10 * Francois Chouinard - Initial API and implementation
20658947 11 * Francois Chouinard - Adapted for TMF Trace Model 1.0
d18dd09b
ASL
12 *******************************************************************************/
13
6c13869b 14package org.eclipse.linuxtools.tmf.core.tests.trace;
d18dd09b
ASL
15
16import java.io.File;
e1ab8984
FC
17import java.io.IOException;
18import java.net.URISyntaxException;
19import java.net.URL;
d18dd09b
ASL
20import java.util.Vector;
21
e1ab8984
FC
22import junit.framework.TestCase;
23
24import org.eclipse.core.runtime.FileLocator;
25import org.eclipse.core.runtime.Path;
6c13869b
FC
26import org.eclipse.linuxtools.tmf.core.component.ITmfDataProvider;
27import org.eclipse.linuxtools.tmf.core.component.TmfProviderManager;
72f1e62a 28import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
6c13869b
FC
29import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
30import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange;
31import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
32import org.eclipse.linuxtools.tmf.core.request.TmfEventRequest;
33import org.eclipse.linuxtools.tmf.core.tests.TmfCoreTestPlugin;
34import org.eclipse.linuxtools.tmf.core.trace.ITmfContext;
6c13869b
FC
35import org.eclipse.linuxtools.tmf.core.trace.TmfContext;
36import org.eclipse.linuxtools.tmf.core.trace.TmfTrace;
20658947 37import org.eclipse.linuxtools.tmf.core.trace.TmfTraceIndexer;
4918b8f2 38import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub;
d18dd09b
ASL
39
40/**
41 * <b><u>TmfTraceTest</u></b>
42 * <p>
ff4ed569 43 * Test suite for the TmfTrace class.
d18dd09b 44 */
3b38ea61 45@SuppressWarnings("nls")
d18dd09b
ASL
46public class TmfTraceTest extends TestCase {
47
f17b2f70
FC
48 // ------------------------------------------------------------------------
49 // Variables
50 // ------------------------------------------------------------------------
ff4ed569 51
d18dd09b 52 private static final String DIRECTORY = "testfiles";
85fb0e54 53 private static final String TEST_STREAM = "A-Test-10K";
ff4ed569 54 private static final int BLOCK_SIZE = 500;
e31e01e8
FC
55 private static final int NB_EVENTS = 10000;
56 private static TmfTraceStub fTrace = null;
d18dd09b 57
20658947 58 private static int SCALE = -3;
d18dd09b 59
e31e01e8 60 // ------------------------------------------------------------------------
d18dd09b 61 // Housekeeping
e31e01e8 62 // ------------------------------------------------------------------------
d18dd09b 63
f17b2f70
FC
64 public TmfTraceTest(final String name) throws Exception {
65 super(name);
66 }
67
68 @Override
69 protected void setUp() throws Exception {
70 super.setUp();
71 fTrace = setupTrace(DIRECTORY + File.separator + TEST_STREAM);
f17b2f70
FC
72 }
73
74 @Override
75 protected void tearDown() throws Exception {
76 super.tearDown();
77 fTrace.dispose();
78 fTrace = null;
79 }
ff4ed569
FC
80
81 // ------------------------------------------------------------------------
82 // Helper functions
83 // ------------------------------------------------------------------------
84
f17b2f70 85 private TmfTraceStub setupTrace(final String path) {
20658947 86 if (fTrace == null) {
f17b2f70
FC
87 try {
88 final URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path), null);
89 final File test = new File(FileLocator.toFileURL(location).toURI());
20658947
FC
90 fTrace = new TmfTraceStub(test.toURI().getPath(), BLOCK_SIZE);
91 fTrace.indexTrace();
f17b2f70
FC
92 } catch (final URISyntaxException e) {
93 e.printStackTrace();
94 } catch (final IOException e) {
95 e.printStackTrace();
96 }
20658947 97 }
f17b2f70 98 return fTrace;
e1ab8984
FC
99 }
100
e31e01e8 101 // ------------------------------------------------------------------------
d18dd09b 102 // Constructors
e31e01e8 103 // ------------------------------------------------------------------------
d18dd09b 104
20658947 105 public void testStandardConstructor() throws Exception {
f17b2f70
FC
106 TmfTraceStub trace = null;
107 File testfile = null;
108 try {
109 final URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(DIRECTORY + File.separator + TEST_STREAM), null);
110 testfile = new File(FileLocator.toFileURL(location).toURI());
111 trace = new TmfTraceStub(testfile.toURI().getPath());
20658947 112 trace.indexTrace();
f17b2f70
FC
113 } catch (final URISyntaxException e) {
114 fail("URISyntaxException");
115 } catch (final IOException e) {
116 fail("IOException");
117 }
20658947
FC
118
119 assertFalse ("Open trace", trace == null);
120 assertEquals("getType", TmfEvent.class, trace.getType());
121 assertNull ("getResource", trace.getResource());
122 assertEquals("getPath", testfile.toURI().getPath(), trace.getPath());
123 assertEquals("getCacheSize", TmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize());
124 assertEquals("getStreamingInterval", 0, trace.getStreamingInterval());
125 assertEquals("getName", TEST_STREAM, trace.getName());
126
127 assertEquals("getNbEvents", NB_EVENTS, trace.getNbEvents());
128 assertEquals("getRange-start", 1, trace.getTimeRange().getStartTime().getValue());
129 assertEquals("getRange-end", NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
130 assertEquals("getStartTime", 1, trace.getStartTime().getValue());
131 assertEquals("getEndTime", NB_EVENTS, trace.getEndTime().getValue());
ff4ed569
FC
132 }
133
20658947 134 public void testStandardConstructorCacheSize() throws Exception {
f17b2f70
FC
135 TmfTraceStub trace = null;
136 File testfile = null;
137 try {
138 final URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(DIRECTORY + File.separator + TEST_STREAM), null);
139 testfile = new File(FileLocator.toFileURL(location).toURI());
140 trace = new TmfTraceStub(testfile.toURI().getPath(), 0);
20658947
FC
141 trace.indexTrace();
142 } catch (final URISyntaxException e) {
143 fail("URISyntaxException");
144 } catch (final IOException e) {
145 fail("IOException");
146 }
147
148 assertFalse ("Open trace", trace == null);
149 assertEquals("getType", TmfEvent.class, trace.getType());
150 assertNull ("getResource", trace.getResource());
151 assertEquals("getPath", testfile.toURI().getPath(), trace.getPath());
152 assertEquals("getCacheSize", TmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize());
153 assertEquals("getStreamingInterval", 0, trace.getStreamingInterval());
154 assertEquals("getName", TEST_STREAM, trace.getName());
155
156 assertEquals("getNbEvents", NB_EVENTS, trace.getNbEvents());
157 assertEquals("getRange-start", 1, trace.getTimeRange().getStartTime().getValue());
158 assertEquals("getRange-end", NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
159 assertEquals("getStartTime", 1, trace.getStartTime().getValue());
160 assertEquals("getEndTime", NB_EVENTS, trace.getEndTime().getValue());
161
162 try {
163 final URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(DIRECTORY + File.separator + TEST_STREAM), null);
164 testfile = new File(FileLocator.toFileURL(location).toURI());
165 trace = new TmfTraceStub(testfile.toURI().getPath(), BLOCK_SIZE);
166 trace.indexTrace();
167 } catch (final URISyntaxException e) {
168 fail("URISyntaxException");
169 } catch (final IOException e) {
170 fail("IOException");
171 }
172
173 assertFalse ("Open trace", trace == null);
174 assertEquals("getType", TmfEvent.class, trace.getType());
175 assertNull ("getResource", trace.getResource());
176 assertEquals("getPath", testfile.toURI().getPath(), trace.getPath());
177 assertEquals("getCacheSize", BLOCK_SIZE, trace.getCacheSize());
178 assertEquals("getStreamingInterval", 0, trace.getStreamingInterval());
179 assertEquals("getName", TEST_STREAM, trace.getName());
180
181 assertEquals("getNbEvents", NB_EVENTS, trace.getNbEvents());
182 assertEquals("getRange-start", 1, trace.getTimeRange().getStartTime().getValue());
183 assertEquals("getRange-end", NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
184 assertEquals("getStartTime", 1, trace.getStartTime().getValue());
185 assertEquals("getEndTime", NB_EVENTS, trace.getEndTime().getValue());
186 }
187
188 public void testFullConstructor() throws Exception {
189 TmfTraceStub trace = null;
190 File testfile = null;
191 try {
192 final URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(DIRECTORY + File.separator + TEST_STREAM), null);
193 testfile = new File(FileLocator.toFileURL(location).toURI());
194 trace = new TmfTraceStub(testfile.toURI().getPath(), BLOCK_SIZE, null);
195 trace.indexTrace();
196 } catch (final URISyntaxException e) {
197 fail("URISyntaxException");
198 } catch (final IOException e) {
199 fail("IOException");
200 }
201
202 assertFalse ("Open trace", trace == null);
203 assertEquals("getType", TmfEvent.class, trace.getType());
204 assertNull ("getResource", trace.getResource());
205 assertEquals("getPath", testfile.toURI().getPath(), trace.getPath());
206 assertEquals("getCacheSize", BLOCK_SIZE, trace.getCacheSize());
207 assertEquals("getStreamingInterval", 0, trace.getStreamingInterval());
208 assertEquals("getName", TEST_STREAM, trace.getName());
209
210 assertEquals("getNbEvents", NB_EVENTS, trace.getNbEvents());
211 assertEquals("getRange-start", 1, trace.getTimeRange().getStartTime().getValue());
212 assertEquals("getRange-end", NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
213 assertEquals("getStartTime", 1, trace.getStartTime().getValue());
214 assertEquals("getEndTime", NB_EVENTS, trace.getEndTime().getValue());
215 }
216
217 @SuppressWarnings({ "rawtypes", "unchecked" })
218 public void testCopyConstructor() throws Exception {
219 TmfTraceStub original = null;
220 TmfTraceStub trace = null;
221 File testfile = null;
222 try {
223 final URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(DIRECTORY + File.separator + TEST_STREAM), null);
224 testfile = new File(FileLocator.toFileURL(location).toURI());
225 original = new TmfTraceStub(testfile.toURI().getPath(), BLOCK_SIZE, new TmfTraceIndexer(null));
226 trace = new TmfTraceStub(original);
227 trace.indexTrace();
f17b2f70
FC
228 } catch (final URISyntaxException e) {
229 fail("URISyntaxException");
230 } catch (final IOException e) {
231 fail("IOException");
232 }
20658947
FC
233
234 assertFalse ("Open trace", trace == null);
235 assertEquals("getType", TmfEvent.class, trace.getType());
236 assertNull ("getResource", trace.getResource());
237 assertEquals("getPath", testfile.toURI().getPath(), trace.getPath());
238 assertEquals("getCacheSize", BLOCK_SIZE, trace.getCacheSize());
239 assertEquals("getStreamingInterval", 0, trace.getStreamingInterval());
240 assertEquals("getName", TEST_STREAM, trace.getName());
241
242 assertEquals("getNbEvents", NB_EVENTS, trace.getNbEvents());
243 assertEquals("getRange-start", 1, trace.getTimeRange().getStartTime().getValue());
244 assertEquals("getRange-end", NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
245 assertEquals("getStartTime", 1, trace.getStartTime().getValue());
246 assertEquals("getEndTime", NB_EVENTS, trace.getEndTime().getValue());
247
248 // Test the copy of a null trace
249 try {
250 new TmfTraceStub((TmfTraceStub) null);
251 fail("Missing exception");
252 } catch (final IllegalArgumentException e) {
253 // test passed
254 } catch (final Exception e) {
255 fail("Unexpected exception");
256 }
d18dd09b
ASL
257 }
258
20658947
FC
259 // ------------------------------------------------------------------------
260 // toString
261 // ------------------------------------------------------------------------
262
263 public void testDefaultTmfTraceStub() throws Exception {
264 assertFalse ("Open trace", fTrace == null);
265 assertEquals("getType", TmfEvent.class, fTrace.getType());
266 assertNull ("getResource", fTrace.getResource());
267 assertEquals("getCacheSize", BLOCK_SIZE, fTrace.getCacheSize());
268 assertEquals("getStreamingInterval", 0, fTrace.getStreamingInterval());
269 assertEquals("getName", TEST_STREAM, fTrace.getName());
270
271 assertEquals("getNbEvents", NB_EVENTS, fTrace.getNbEvents());
272 assertEquals("getRange-start", 1, fTrace.getTimeRange().getStartTime().getValue());
273 assertEquals("getRange-end", NB_EVENTS, fTrace.getTimeRange().getEndTime().getValue());
274 assertEquals("getStartTime", 1, fTrace.getStartTime().getValue());
275 assertEquals("getEndTime", NB_EVENTS, fTrace.getEndTime().getValue());
276
277 String expected = "TmfTrace [fPath=" + fTrace.getPath() + ", fCacheSize=" + fTrace.getCacheSize() +
278 ", fNbEvents=" + fTrace.getNbEvents() + ", fStartTime=" + fTrace.getStartTime() +
279 ", fEndTime=" + fTrace.getEndTime() + ", fStreamingInterval=" + fTrace.getStreamingInterval() +
280 "]";
281 assertEquals("toString", expected, fTrace.toString());
ff4ed569
FC
282 }
283
20658947
FC
284 // ------------------------------------------------------------------------
285 // Trace initialization
286 // ------------------------------------------------------------------------
287
288 public void testInitTrace() throws Exception {
289
290 // Instantiate an "empty" trace
291 final TmfTraceStub trace = new TmfTraceStub();
292
293 assertFalse ("Open trace", trace == null);
294 assertNull ("getType", trace.getType());
295 assertNull ("getResource", trace.getResource());
296 assertEquals("getCacheSize", TmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize());
297 assertEquals("getStreamingInterval", 0, trace.getStreamingInterval());
298 assertEquals("getName", "", trace.getName());
299
300 assertEquals("getNbEvents", 0, trace.getNbEvents());
301 assertEquals("getRange-start", Long.MAX_VALUE, trace.getTimeRange().getStartTime().getValue());
302 assertEquals("getRange-end", Long.MIN_VALUE, trace.getTimeRange().getEndTime().getValue());
303 assertEquals("getStartTime", Long.MAX_VALUE, trace.getStartTime().getValue());
304 assertEquals("getEndTime", Long.MIN_VALUE, trace.getEndTime().getValue());
305
306 // Validate
307 final URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(DIRECTORY + File.separator + TEST_STREAM), null);
308 final File testfile = new File(FileLocator.toFileURL(location).toURI());
309 assertTrue("validate", trace.validate(null, testfile.getPath()));
310
311 // InitTrace and wait for indexing completion...
312 trace.initTrace(null, testfile.getPath(), TmfEvent.class);
313 int nbSecs = 0;
314 while (trace.getNbEvents() < NB_EVENTS && nbSecs < 10) {
315 Thread.sleep(1000);
316 nbSecs++;
317 }
318 if (trace.getNbEvents() < NB_EVENTS) {
319 fail("indexing");
320 }
321
322 assertFalse ("Open trace", trace == null);
323 assertEquals("getType", TmfEvent.class, trace.getType());
324 assertNull ("getResource", trace.getResource());
325 assertEquals("getCacheSize", TmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize());
326 assertEquals("getStreamingInterval", 0, trace.getStreamingInterval());
327 assertEquals("getName", TEST_STREAM, trace.getName());
328
329 assertEquals("getNbEvents", NB_EVENTS, trace.getNbEvents());
330 assertEquals("getRange-start", 1, trace.getTimeRange().getStartTime().getValue());
331 assertEquals("getRange-end", NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
332 assertEquals("getStartTime", 1, trace.getStartTime().getValue());
333 assertEquals("getEndTime", NB_EVENTS, trace.getEndTime().getValue());
334 }
d18dd09b 335
ff4ed569
FC
336 // ------------------------------------------------------------------------
337 // Get/Set time range
338 // ------------------------------------------------------------------------
339
340 public void testSetTimeRange() throws Exception {
f17b2f70 341 final TmfTraceStub trace = new TmfTraceStub(fTrace);
20658947 342 trace.indexTrace();
f17b2f70 343
ff4ed569
FC
344 assertEquals("getRange-start", 1, trace.getTimeRange().getStartTime().getValue());
345 assertEquals("getRange-end", NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
346 assertEquals("getStartTime", 1, trace.getStartTime().getValue());
347 assertEquals("getEndTime", NB_EVENTS, trace.getEndTime().getValue());
348
349 trace.setTimeRange(new TmfTimeRange(new TmfTimestamp(100), new TmfTimestamp(200)));
350 assertEquals("setTimeRange", 100, trace.getTimeRange().getStartTime().getValue());
351 assertEquals("setTimeRange", 200, trace.getTimeRange().getEndTime().getValue());
352 assertEquals("setTimeRange", 100, trace.getStartTime().getValue());
353 assertEquals("setTimeRange", 200, trace.getEndTime().getValue());
f17b2f70
FC
354
355 trace.dispose();
ff4ed569 356 }
f17b2f70 357
ff4ed569 358 public void testSetStartTime() throws Exception {
f17b2f70 359 final TmfTraceStub trace = new TmfTraceStub(fTrace);
20658947 360 trace.indexTrace();
f17b2f70 361
ff4ed569
FC
362 assertEquals("getRange-start", 1, trace.getTimeRange().getStartTime().getValue());
363 assertEquals("getRange-end", NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
364 assertEquals("getStartTime", 1, trace.getStartTime().getValue());
365 assertEquals("getEndTime", NB_EVENTS, trace.getEndTime().getValue());
366
367 trace.setStartTime(new TmfTimestamp(100));
368 assertEquals("setStartTime", 100, trace.getTimeRange().getStartTime().getValue());
369 assertEquals("setStartTime", NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
370 assertEquals("setStartTime", 100, trace.getStartTime().getValue());
371 assertEquals("setStartTime", NB_EVENTS, trace.getEndTime().getValue());
f17b2f70
FC
372
373 trace.dispose();
ff4ed569 374 }
f17b2f70 375
ff4ed569 376 public void testSetEndTime() throws Exception {
f17b2f70 377 final TmfTraceStub trace = new TmfTraceStub(fTrace);
20658947 378 trace.indexTrace();
f17b2f70 379
ff4ed569
FC
380 assertEquals("getRange-start", 1, trace.getTimeRange().getStartTime().getValue());
381 assertEquals("getRange-end", NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
382 assertEquals("getStartTime", 1, trace.getStartTime().getValue());
383 assertEquals("getEndTime", NB_EVENTS, trace.getEndTime().getValue());
384
385 trace.setEndTime(new TmfTimestamp(100));
386 assertEquals("setEndTime", 1, trace.getTimeRange().getStartTime().getValue());
387 assertEquals("setEndTime", 100, trace.getTimeRange().getEndTime().getValue());
388 assertEquals("setEndTime", 1, trace.getStartTime().getValue());
389 assertEquals("setEndTime", 100, trace.getEndTime().getValue());
f17b2f70
FC
390
391 trace.dispose();
ff4ed569 392 }
f17b2f70 393
e31e01e8 394 // ------------------------------------------------------------------------
20658947 395 // seekEvent on timestamp
54d55ced
FC
396 // ------------------------------------------------------------------------
397
20658947 398 public void testSeekEventOnNullTimestamp() throws Exception {
54d55ced 399
f17b2f70 400 // Position trace at event rank 0
20658947 401 ITmfContext context = fTrace.seekEvent(null);
ff4ed569 402 assertEquals("Event rank", 0, context.getRank());
9b635e61 403
72f1e62a 404 ITmfEvent event = fTrace.parseEvent(context);
54d55ced 405 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
20658947 406 assertEquals("Event rank", 0, context.getRank());
54d55ced
FC
407 }
408
54d55ced
FC
409 public void testSeekEventOnTimestampOnCacheBoundary() throws Exception {
410
f17b2f70
FC
411 // Position trace at event rank 0
412 ITmfContext context = fTrace.seekEvent(new TmfTimestamp(1, SCALE, 0));
54d55ced 413 assertEquals("Event rank", 0, context.getRank());
9b635e61 414
72f1e62a 415 ITmfEvent event = fTrace.parseEvent(context);
54d55ced
FC
416 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
417 assertEquals("Event rank", 0, context.getRank());
f17b2f70 418
9b635e61 419 event = fTrace.getNextEvent(context);
75828b1a 420 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
e31e01e8 421 assertEquals("Event rank", 1, context.getRank());
d18dd09b 422
f17b2f70 423 // Position trace at event rank 1000
54d55ced
FC
424 context = fTrace.seekEvent(new TmfTimestamp(1001, SCALE, 0));
425 assertEquals("Event rank", 1000, context.getRank());
f17b2f70 426
9b635e61 427 event = fTrace.parseEvent(context);
54d55ced
FC
428 assertEquals("Event timestamp", 1001, event.getTimestamp().getValue());
429 assertEquals("Event rank", 1000, context.getRank());
f17b2f70 430
9b635e61 431 event = fTrace.getNextEvent(context);
e31e01e8
FC
432 assertEquals("Event timestamp", 1001, event.getTimestamp().getValue());
433 assertEquals("Event rank", 1001, context.getRank());
d18dd09b 434
f17b2f70 435 // Position trace at event rank 4000
54d55ced
FC
436 context = fTrace.seekEvent(new TmfTimestamp(4001, SCALE, 0));
437 assertEquals("Event rank", 4000, context.getRank());
f17b2f70 438
9b635e61 439 event = fTrace.parseEvent(context);
54d55ced
FC
440 assertEquals("Event timestamp", 4001, event.getTimestamp().getValue());
441 assertEquals("Event rank", 4000, context.getRank());
f17b2f70 442
9b635e61 443 event = fTrace.getNextEvent(context);
e31e01e8
FC
444 assertEquals("Event timestamp", 4001, event.getTimestamp().getValue());
445 assertEquals("Event rank", 4001, context.getRank());
75828b1a 446 }
d18dd09b 447
54d55ced
FC
448 public void testSeekEventOnTimestampNotOnCacheBoundary() throws Exception {
449
f17b2f70
FC
450 // Position trace at event rank 1
451 ITmfContext context = fTrace.seekEvent(new TmfTimestamp(2, SCALE, 0));
54d55ced 452 assertEquals("Event rank", 1, context.getRank());
f17b2f70 453
72f1e62a 454 ITmfEvent event = fTrace.parseEvent(context);
54d55ced
FC
455 assertEquals("Event timestamp", 2, event.getTimestamp().getValue());
456 assertEquals("Event rank", 1, context.getRank());
f17b2f70 457
9b635e61 458 event = fTrace.getNextEvent(context);
54d55ced
FC
459 assertEquals("Event timestamp", 2, event.getTimestamp().getValue());
460 assertEquals("Event rank", 2, context.getRank());
d18dd09b 461
f17b2f70
FC
462 // Position trace at event rank 9
463 context = fTrace.seekEvent(new TmfTimestamp(10, SCALE, 0));
54d55ced 464 assertEquals("Event rank", 9, context.getRank());
f17b2f70 465
9b635e61 466 event = fTrace.parseEvent(context);
54d55ced
FC
467 assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
468 assertEquals("Event rank", 9, context.getRank());
f17b2f70 469
9b635e61 470 event = fTrace.getNextEvent(context);
e31e01e8
FC
471 assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
472 assertEquals("Event rank", 10, context.getRank());
d18dd09b 473
f17b2f70 474 // Position trace at event rank 999
54d55ced
FC
475 context = fTrace.seekEvent(new TmfTimestamp(1000, SCALE, 0));
476 assertEquals("Event rank", 999, context.getRank());
f17b2f70 477
9b635e61 478 event = fTrace.parseEvent(context);
54d55ced 479 assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
e31e01e8 480 assertEquals("Event rank", 999, context.getRank());
f17b2f70 481
9b635e61 482 event = fTrace.getNextEvent(context);
54d55ced
FC
483 assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
484 assertEquals("Event rank", 1000, context.getRank());
e31e01e8 485
f17b2f70 486 // Position trace at event rank 1001
54d55ced 487 context = fTrace.seekEvent(new TmfTimestamp(1002, SCALE, 0));
e31e01e8 488 assertEquals("Event rank", 1001, context.getRank());
f17b2f70 489
9b635e61 490 event = fTrace.parseEvent(context);
54d55ced
FC
491 assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
492 assertEquals("Event rank", 1001, context.getRank());
f17b2f70 493
9b635e61 494 event = fTrace.getNextEvent(context);
54d55ced
FC
495 assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
496 assertEquals("Event rank", 1002, context.getRank());
497
f17b2f70 498 // Position trace at event rank 4500
54d55ced
FC
499 context = fTrace.seekEvent(new TmfTimestamp(4501, SCALE, 0));
500 assertEquals("Event rank", 4500, context.getRank());
f17b2f70 501
9b635e61 502 event = fTrace.parseEvent(context);
54d55ced
FC
503 assertEquals("Event timestamp", 4501, event.getTimestamp().getValue());
504 assertEquals("Event rank", 4500, context.getRank());
f17b2f70 505
9b635e61 506 event = fTrace.getNextEvent(context);
54d55ced
FC
507 assertEquals("Event timestamp", 4501, event.getTimestamp().getValue());
508 assertEquals("Event rank", 4501, context.getRank());
75828b1a 509 }
d18dd09b 510
54d55ced 511 public void testSeekEventOnTimestampOutOfScope() throws Exception {
d18dd09b 512
f17b2f70
FC
513 // Position trace at beginning
514 ITmfContext context = fTrace.seekEvent(new TmfTimestamp(-1, SCALE, 0));
54d55ced 515 assertEquals("Event rank", 0, context.getRank());
f17b2f70 516
72f1e62a 517 ITmfEvent event = fTrace.parseEvent(context);
75828b1a 518 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
54d55ced 519 assertEquals("Event rank", 0, context.getRank());
f17b2f70 520
9b635e61 521 event = fTrace.getNextEvent(context);
54d55ced
FC
522 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
523 assertEquals("Event rank", 1, context.getRank());
75828b1a 524
f17b2f70 525 // Position trace at event passed the end
54d55ced
FC
526 context = fTrace.seekEvent(new TmfTimestamp(NB_EVENTS + 1, SCALE, 0));
527 assertEquals("Event rank", NB_EVENTS, context.getRank());
f17b2f70 528
9b635e61 529 event = fTrace.parseEvent(context);
75828b1a 530 assertEquals("Event timestamp", null, event);
54d55ced 531 assertEquals("Event rank", NB_EVENTS, context.getRank());
f17b2f70 532
9b635e61 533 event = fTrace.getNextEvent(context);
54d55ced
FC
534 assertEquals("Event timestamp", null, event);
535 assertEquals("Event rank", NB_EVENTS, context.getRank());
d18dd09b
ASL
536 }
537
54d55ced
FC
538 // ------------------------------------------------------------------------
539 // seekEvent on rank
540 // ------------------------------------------------------------------------
541
20658947
FC
542 public void testSeekEventOnNegativeRank() throws Exception {
543
544 // Position trace at event rank 0
545 ITmfContext context = fTrace.seekEvent(-1);
546 assertEquals("Event rank", 0, context.getRank());
547
548 ITmfEvent event = fTrace.parseEvent(context);
549 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
550 assertEquals("Event rank", 0, context.getRank());
551 }
552
54d55ced 553 public void testSeekOnRankOnCacheBoundary() throws Exception {
e31e01e8 554
f17b2f70
FC
555 // On lower bound, returns the first event (ts = 1)
556 ITmfContext context = fTrace.seekEvent(0);
54d55ced 557 assertEquals("Event rank", 0, context.getRank());
f17b2f70 558
72f1e62a 559 ITmfEvent event = fTrace.parseEvent(context);
e31e01e8 560 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
54d55ced 561 assertEquals("Event rank", 0, context.getRank());
f17b2f70 562
9b635e61 563 event = fTrace.getNextEvent(context);
54d55ced
FC
564 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
565 assertEquals("Event rank", 1, context.getRank());
e31e01e8 566
f17b2f70 567 // Position trace at event rank 1000
54d55ced
FC
568 context = fTrace.seekEvent(1000);
569 assertEquals("Event rank", 1000, context.getRank());
f17b2f70 570
9b635e61 571 event = fTrace.parseEvent(context);
54d55ced
FC
572 assertEquals("Event timestamp", 1001, event.getTimestamp().getValue());
573 assertEquals("Event rank", 1000, context.getRank());
f17b2f70 574
9b635e61 575 event = fTrace.getNextEvent(context);
54d55ced
FC
576 assertEquals("Event timestamp", 1001, event.getTimestamp().getValue());
577 assertEquals("Event rank", 1001, context.getRank());
e31e01e8 578
f17b2f70 579 // Position trace at event rank 4000
54d55ced
FC
580 context = fTrace.seekEvent(4000);
581 assertEquals("Event rank", 4000, context.getRank());
f17b2f70 582
9b635e61 583 event = fTrace.parseEvent(context);
54d55ced
FC
584 assertEquals("Event timestamp", 4001, event.getTimestamp().getValue());
585 assertEquals("Event rank", 4000, context.getRank());
f17b2f70 586
9b635e61 587 event = fTrace.getNextEvent(context);
54d55ced
FC
588 assertEquals("Event timestamp", 4001, event.getTimestamp().getValue());
589 assertEquals("Event rank", 4001, context.getRank());
e31e01e8
FC
590 }
591
54d55ced 592 public void testSeekOnRankNotOnCacheBoundary() throws Exception {
d18dd09b 593
f17b2f70
FC
594 // Position trace at event rank 9
595 ITmfContext context = fTrace.seekEvent(9);
54d55ced 596 assertEquals("Event rank", 9, context.getRank());
f17b2f70 597
72f1e62a 598 ITmfEvent event = fTrace.parseEvent(context);
54d55ced
FC
599 assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
600 assertEquals("Event rank", 9, context.getRank());
f17b2f70 601
9b635e61 602 event = fTrace.getNextEvent(context);
54d55ced
FC
603 assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
604 assertEquals("Event rank", 10, context.getRank());
d18dd09b 605
f17b2f70 606 // Position trace at event rank 999
54d55ced
FC
607 context = fTrace.seekEvent(999);
608 assertEquals("Event rank", 999, context.getRank());
f17b2f70 609
9b635e61 610 event = fTrace.parseEvent(context);
54d55ced
FC
611 assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
612 assertEquals("Event rank", 999, context.getRank());
f17b2f70 613
9b635e61 614 event = fTrace.getNextEvent(context);
54d55ced
FC
615 assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
616 assertEquals("Event rank", 1000, context.getRank());
d18dd09b 617
f17b2f70 618 // Position trace at event rank 1001
54d55ced
FC
619 context = fTrace.seekEvent(1001);
620 assertEquals("Event rank", 1001, context.getRank());
f17b2f70 621
9b635e61 622 event = fTrace.parseEvent(context);
54d55ced
FC
623 assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
624 assertEquals("Event rank", 1001, context.getRank());
f17b2f70 625
9b635e61 626 event = fTrace.getNextEvent(context);
54d55ced
FC
627 assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
628 assertEquals("Event rank", 1002, context.getRank());
629
f17b2f70 630 // Position trace at event rank 4500
54d55ced
FC
631 context = fTrace.seekEvent(4500);
632 assertEquals("Event rank", 4500, context.getRank());
f17b2f70 633
9b635e61 634 event = fTrace.parseEvent(context);
54d55ced
FC
635 assertEquals("Event timestamp", 4501, event.getTimestamp().getValue());
636 assertEquals("Event rank", 4500, context.getRank());
f17b2f70 637
9b635e61 638 event = fTrace.getNextEvent(context);
54d55ced
FC
639 assertEquals("Event timestamp", 4501, event.getTimestamp().getValue());
640 assertEquals("Event rank", 4501, context.getRank());
d18dd09b
ASL
641 }
642
54d55ced
FC
643 public void testSeekEventOnRankOfScope() throws Exception {
644
f17b2f70
FC
645 // Position trace at beginning
646 ITmfContext context = fTrace.seekEvent(-1);
54d55ced 647 assertEquals("Event rank", 0, context.getRank());
f17b2f70 648
72f1e62a 649 ITmfEvent event = fTrace.parseEvent(context);
54d55ced
FC
650 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
651 assertEquals("Event rank", 0, context.getRank());
f17b2f70 652
9b635e61 653 event = fTrace.getNextEvent(context);
54d55ced
FC
654 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
655 assertEquals("Event rank", 1, context.getRank());
656
f17b2f70 657 // Position trace at event passed the end
54d55ced
FC
658 context = fTrace.seekEvent(NB_EVENTS);
659 assertEquals("Event rank", NB_EVENTS, context.getRank());
f17b2f70 660
9b635e61 661 event = fTrace.parseEvent(context);
54d55ced
FC
662 assertEquals("Event timestamp", null, event);
663 assertEquals("Event rank", NB_EVENTS, context.getRank());
f17b2f70 664
9b635e61 665 event = fTrace.getNextEvent(context);
54d55ced
FC
666 assertEquals("Event timestamp", null, event);
667 assertEquals("Event rank", NB_EVENTS, context.getRank());
668 }
f17b2f70 669
20658947
FC
670 // ------------------------------------------------------------------------
671 // parseEvent - make sure parseEvent doesn't update the context
672 // ------------------------------------------------------------------------
673
674 public void testParseEvent() throws Exception {
675
676 final int NB_READS = 20;
677
678 // On lower bound, returns the first event (ts = 0)
679 final TmfContext context = (TmfContext) fTrace.seekEvent(new TmfTimestamp(0, SCALE, 0));
680 TmfContext svContext = new TmfContext(context);
681
682 ITmfEvent event = fTrace.parseEvent(context);
683 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
684 assertEquals("Event rank", 0, context.getRank());
685 assertTrue("parseEvent", context.equals(svContext));
686
687 event = fTrace.parseEvent(context);
688 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
689 assertEquals("Event rank", 0, context.getRank());
690 assertTrue("parseEvent", context.equals(svContext));
691
692 event = fTrace.parseEvent(context);
693 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
694 assertEquals("Event rank", 0, context.getRank());
695 assertTrue("parseEvent", context.equals(svContext));
696
697 // Position the trace at event NB_READS
698 for (int i = 1; i < NB_READS; i++) {
699 event = fTrace.getNextEvent(context);
700 assertEquals("Event timestamp", i, event.getTimestamp().getValue());
701 }
702
703 svContext = new TmfContext(context);
704 event = fTrace.parseEvent(context);
705 assertEquals("Event timestamp", NB_READS, event.getTimestamp().getValue());
706 assertEquals("Event rank", NB_READS -1 , context.getRank());
707 assertTrue("parseEvent", context.equals(svContext));
708
709 event = fTrace.parseEvent(context);
710 assertEquals("Event timestamp", NB_READS, event.getTimestamp().getValue());
711 assertEquals("Event rank", NB_READS - 1, context.getRank());
712 assertTrue("parseEvent", context.equals(svContext));
713 }
714
715 // ------------------------------------------------------------------------
716 // getNextEvent - updates the context
717 // ------------------------------------------------------------------------
718
719 public void testGetNextEvent() throws Exception {
720
721 final int NB_READS = 20;
722
723 // On lower bound, returns the first event (ts = 1)
724 final ITmfContext context = fTrace.seekEvent(new TmfTimestamp(0, SCALE, 0));
725
726 // Read NB_EVENTS
727 ITmfEvent event;
728 for (int i = 0; i < NB_READS; i++) {
729 event = fTrace.getNextEvent(context);
730 assertEquals("Event timestamp", i + 1, event.getTimestamp().getValue());
731 assertEquals("Event rank", i + 1, context.getRank());
732 }
733
734 // Make sure we stay positioned
735 event = fTrace.parseEvent(context);
736 assertEquals("Event timestamp", NB_READS + 1, event.getTimestamp().getValue());
737 assertEquals("Event rank", NB_READS, context.getRank());
738 }
739
e31e01e8 740 // ------------------------------------------------------------------------
d18dd09b 741 // processRequest
e31e01e8 742 // ------------------------------------------------------------------------
d18dd09b 743
e31e01e8 744 @SuppressWarnings("unchecked")
f17b2f70 745 public void testProcessRequestForNbEvents() throws Exception {
d18dd09b
ASL
746 final int BLOCK_SIZE = 100;
747 final int NB_EVENTS = 1000;
748 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
749
f17b2f70 750 final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
e31e01e8 751 final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, NB_EVENTS, BLOCK_SIZE) {
f17b2f70
FC
752 @Override
753 public void handleData(final TmfEvent event) {
754 super.handleData(event);
755 requestedEvents.add(event);
756 }
d18dd09b 757 };
f17b2f70 758 final ITmfDataProvider<TmfEvent>[] providers = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfTraceStub.class);
951d134a
FC
759 providers[0].sendRequest(request);
760 request.waitForCompletion();
d18dd09b
ASL
761
762 assertEquals("nbEvents", NB_EVENTS, requestedEvents.size());
763 assertTrue("isCompleted", request.isCompleted());
764 assertFalse("isCancelled", request.isCancelled());
765
766 // Ensure that we have distinct events.
f17b2f70 767 // Don't go overboard: we are not validating the stub!
20658947 768 for (int i = 0; i < NB_EVENTS; i++) {
d18dd09b 769 assertEquals("Distinct events", i+1, requestedEvents.get(i).getTimestamp().getValue());
20658947 770 }
d18dd09b 771 }
f17b2f70 772
e31e01e8 773 @SuppressWarnings("unchecked")
f17b2f70 774 public void testProcessRequestForAllEvents() throws Exception {
d18dd09b
ASL
775 final int BLOCK_SIZE = 1;
776 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
777
f17b2f70 778 final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
e31e01e8 779 final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, NB_EVENTS, BLOCK_SIZE) {
f17b2f70
FC
780 @Override
781 public void handleData(final TmfEvent event) {
782 super.handleData(event);
783 requestedEvents.add(event);
784 }
d18dd09b 785 };
f17b2f70 786 final ITmfDataProvider<TmfEvent>[] providers = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfTraceStub.class);
951d134a
FC
787 providers[0].sendRequest(request);
788 request.waitForCompletion();
d18dd09b
ASL
789
790 assertEquals("nbEvents", NB_EVENTS, requestedEvents.size());
791 assertTrue("isCompleted", request.isCompleted());
792 assertFalse("isCancelled", request.isCancelled());
793
794 // Ensure that we have distinct events.
f17b2f70 795 // Don't go overboard: we are not validating the stub!
20658947 796 for (int i = 0; i < NB_EVENTS; i++) {
d18dd09b 797 assertEquals("Distinct events", i+1, requestedEvents.get(i).getTimestamp().getValue());
20658947 798 }
d18dd09b 799 }
f17b2f70 800
e31e01e8 801 // ------------------------------------------------------------------------
d18dd09b 802 // cancel
e31e01e8 803 // ------------------------------------------------------------------------
d18dd09b 804
e31e01e8 805 @SuppressWarnings("unchecked")
f17b2f70 806 public void testCancel() throws Exception {
d18dd09b
ASL
807 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
808
f17b2f70 809 final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
cb866e08 810 final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, NB_EVENTS, BLOCK_SIZE) {
f17b2f70
FC
811 int nbRead = 0;
812 @Override
813 public void handleData(final TmfEvent event) {
814 super.handleData(event);
815 requestedEvents.add(event);
20658947 816 if (++nbRead == BLOCK_SIZE) {
f17b2f70 817 cancel();
20658947 818 }
f17b2f70 819 }
d18dd09b 820 };
f17b2f70 821 final ITmfDataProvider<TmfEvent>[] providers = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfTraceStub.class);
951d134a
FC
822 providers[0].sendRequest(request);
823 request.waitForCompletion();
d18dd09b 824
cb866e08 825 assertEquals("nbEvents", BLOCK_SIZE, requestedEvents.size());
d18dd09b
ASL
826 assertTrue("isCompleted", request.isCompleted());
827 assertTrue("isCancelled", request.isCancelled());
828 }
e31e01e8 829
20658947
FC
830
831// // ------------------------------------------------------------------------
832// // seekLocation
833// // Note: seekLocation() does not reliably set the rank
834// // ------------------------------------------------------------------------
835//
836// public void testSeekLocationOnCacheBoundary() throws Exception {
837//
838// // Position trace at event rank 0
839// TmfContext context = fTrace.seekLocation(null);
840// ITmfEvent event = fTrace.parseEvent(context);
841// assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
842// assertEquals("Event rank", 0, context.getRank());
843//
844// context = fTrace.seekLocation(context.getLocation());
845// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
846//
847// event = fTrace.parseEvent(context);
848// assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
849// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
850//
851// event = fTrace.getNextEvent(context);
852// assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
853// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
854//
855// // Position trace at event rank 1000
856// ITmfContext tmpContext = fTrace.seekEvent(new TmfTimestamp(1001, SCALE, 0));
857// context = fTrace.seekLocation(tmpContext.getLocation());
858// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
859//
860// event = fTrace.parseEvent(context);
861// assertEquals("Event timestamp", 1001, event.getTimestamp().getValue());
862// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
863//
864// event = fTrace.getNextEvent(context);
865// assertEquals("Event timestamp", 1001, event.getTimestamp().getValue());
866// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
867//
868// // Position trace at event rank 4000
869// tmpContext = fTrace.seekEvent(new TmfTimestamp(4001, SCALE, 0));
870// context = fTrace.seekLocation(tmpContext.getLocation());
871// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
872//
873// event = fTrace.parseEvent(context);
874// assertEquals("Event timestamp", 4001, event.getTimestamp().getValue());
875// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
876//
877// event = fTrace.getNextEvent(context);
878// assertEquals("Event timestamp", 4001, event.getTimestamp().getValue());
879// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
880// }
881//
882// public void testSeekLocationNotOnCacheBoundary() throws Exception {
883//
884// // Position trace at event rank 9
885// ITmfContext tmpContext = fTrace.seekEvent(new TmfTimestamp(10, SCALE, 0));
886// TmfContext context = fTrace.seekLocation(tmpContext.getLocation());
887// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
888//
889// ITmfEvent event = fTrace.parseEvent(context);
890// assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
891// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
892//
893// event = fTrace.getNextEvent(context);
894// assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
895// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
896//
897// // Position trace at event rank 999
898// tmpContext = fTrace.seekEvent(new TmfTimestamp(1000, SCALE, 0));
899// context = fTrace.seekLocation(tmpContext.getLocation());
900// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
901//
902// event = fTrace.parseEvent(context);
903// assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
904// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
905//
906// event = fTrace.getNextEvent(context);
907// assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
908// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
909//
910// // Position trace at event rank 1001
911// tmpContext = fTrace.seekEvent(new TmfTimestamp(1002, SCALE, 0));
912// context = fTrace.seekLocation(tmpContext.getLocation());
913// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
914//
915// event = fTrace.parseEvent(context);
916// assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
917// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
918//
919// event = fTrace.getNextEvent(context);
920// assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
921// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
922//
923// // Position trace at event rank 4500
924// tmpContext = fTrace.seekEvent(new TmfTimestamp(4501, SCALE, 0));
925// context = fTrace.seekLocation(tmpContext.getLocation());
926// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
927//
928// event = fTrace.parseEvent(context);
929// assertEquals("Event timestamp", 4501, event.getTimestamp().getValue());
930// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
931//
932// event = fTrace.getNextEvent(context);
933// assertEquals("Event timestamp", 4501, event.getTimestamp().getValue());
934// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
935// }
936//
937// public void testSeekLocationOutOfScope() throws Exception {
938//
939// // Position trace at beginning
940// ITmfContext tmpContext = fTrace.seekLocation(null);
941// ITmfContext context = fTrace.seekLocation(tmpContext.getLocation());
942// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
943//
944// ITmfEvent event = fTrace.parseEvent(context);
945// assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
946// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
947//
948// event = fTrace.getNextEvent(context);
949// assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
950// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
951//
952// // Position trace at event passed the end
953// tmpContext = fTrace.seekEvent(new TmfTimestamp(NB_EVENTS + 1, SCALE, 0));
954// context = fTrace.seekLocation(tmpContext.getLocation());
955// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
956//
957// event = fTrace.parseEvent(context);
958// assertEquals("Event timestamp", null, event);
959// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
960//
961// event = fTrace.getNextEvent(context);
962// assertEquals("Event timestamp", null, event);
963// assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
964// }
965
966 // ------------------------------------------------------------------------
967 // Verify checkpoints
968 // ------------------------------------------------------------------------
969
970 // public void testTmfTraceIndexing() throws Exception {
971 // assertEquals("getCacheSize", BLOCK_SIZE, fTrace.getIndexPageSize());
972 // assertEquals("getTraceSize", NB_EVENTS, fTrace.getNbEvents());
973 // assertEquals("getRange-start", 1, fTrace.getTimeRange().getStartTime().getValue());
974 // assertEquals("getRange-end", NB_EVENTS, fTrace.getTimeRange().getEndTime().getValue());
975 // assertEquals("getStartTime", 1, fTrace.getStartTime().getValue());
976 // assertEquals("getEndTime", NB_EVENTS, fTrace.getEndTime().getValue());
977 //
978 // final Vector<TmfCheckpoint> checkpoints = fTrace.getCheckpoints();
979 // final int pageSize = fTrace.getIndexPageSize();
980 // assertTrue("Checkpoints exist", checkpoints != null);
981 //
982 // // Validate that each checkpoint points to the right event
983 // for (int i = 0; i < checkpoints.size(); i++) {
984 // final TmfCheckpoint checkpoint = checkpoints.get(i);
985 // final TmfContext context = new TmfContext(checkpoint.getLocation(), i * pageSize);
986 // final ITmfEvent event = fTrace.parseEvent(context);
987 // assertTrue(context.getRank() == i * pageSize);
988 // assertTrue((checkpoint.getTimestamp().compareTo(event.getTimestamp(), false) == 0));
989 // }
990 // }
991
e31e01e8 992}
This page took 0.092613 seconds and 5 git commands to generate.