lttng: Simple warning fixes in lttng2 and ctf
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core.tests / src / org / eclipse / linuxtools / tmf / core / tests / trace / TmfMultiTraceExperimentTest.java
CommitLineData
d18dd09b 1/*******************************************************************************
0316808c 2 * Copyright (c) 2009, 2010, 2012 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
0316808c 11 * Francois Chouinard - Adjusted for new Trace Model
d18dd09b
ASL
12 *******************************************************************************/
13
9e0640dc 14package org.eclipse.linuxtools.tmf.core.tests.trace;
d18dd09b
ASL
15
16import java.io.File;
17import java.io.IOException;
18import java.net.URISyntaxException;
19import java.net.URL;
20import java.util.Vector;
21
22import junit.framework.TestCase;
23
24import org.eclipse.core.runtime.FileLocator;
25import org.eclipse.core.runtime.Path;
72f1e62a 26import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
6c13869b
FC
27import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
28import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange;
29import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
b4f71e4a 30import org.eclipse.linuxtools.tmf.core.exceptions.TmfTraceException;
6c13869b
FC
31import org.eclipse.linuxtools.tmf.core.request.TmfEventRequest;
32import org.eclipse.linuxtools.tmf.core.tests.TmfCoreTestPlugin;
33import org.eclipse.linuxtools.tmf.core.trace.ITmfContext;
0316808c 34import org.eclipse.linuxtools.tmf.core.trace.ITmfLocation;
6c13869b 35import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
9e0640dc 36import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfExperimentStub;
4918b8f2 37import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub;
d18dd09b
ASL
38
39/**
0316808c 40 * Test suite for the TmfExperiment class (multiple traces).
d18dd09b 41 */
3b38ea61 42@SuppressWarnings("nls")
d18dd09b
ASL
43public class TmfMultiTraceExperimentTest extends TestCase {
44
0316808c
FC
45 // ------------------------------------------------------------------------
46 // Attributes
47 // ------------------------------------------------------------------------
48
d18dd09b
ASL
49 private static final String DIRECTORY = "testfiles";
50 private static final String TEST_STREAM1 = "O-Test-10K";
51 private static final String TEST_STREAM2 = "E-Test-10K";
52 private static final String EXPERIMENT = "MyExperiment";
53 private static int NB_EVENTS = 20000;
9b635e61 54 private static int BLOCK_SIZE = 1000;
d18dd09b 55
0879b6b9
FC
56 private static ITmfTrace<TmfEvent>[] fTraces;
57 private static TmfExperimentStub<TmfEvent> fExperiment;
d18dd09b
ASL
58
59 private static byte SCALE = (byte) -3;
60
61 // ------------------------------------------------------------------------
62 // Housekeeping
63 // ------------------------------------------------------------------------
64
0879b6b9 65 @SuppressWarnings("unchecked")
25e48683
FC
66 private synchronized static ITmfTrace<?>[] setupTrace(final String path1, final String path2) {
67 if (fTraces == null) {
68 fTraces = new ITmfTrace[2];
69 try {
70 URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path1), null);
71 File test = new File(FileLocator.toFileURL(location).toURI());
20658947 72 final TmfTraceStub trace1 = new TmfTraceStub(test.getPath(), 0, true);
25e48683
FC
73 fTraces[0] = trace1;
74 location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path2), null);
75 test = new File(FileLocator.toFileURL(location).toURI());
20658947 76 final TmfTraceStub trace2 = new TmfTraceStub(test.getPath(), 0, true);
25e48683 77 fTraces[1] = trace2;
b4f71e4a
FC
78 } catch (final TmfTraceException e) {
79 e.printStackTrace();
25e48683
FC
80 } catch (final URISyntaxException e) {
81 e.printStackTrace();
82 } catch (final IOException e) {
83 e.printStackTrace();
84 }
85 }
86 return fTraces;
d18dd09b
ASL
87 }
88
25e48683
FC
89 public TmfMultiTraceExperimentTest(final String name) throws Exception {
90 super(name);
91 }
d18dd09b 92
25e48683 93 @Override
0879b6b9 94 protected synchronized void setUp() throws Exception {
25e48683
FC
95 super.setUp();
96 setupTrace(DIRECTORY + File.separator + TEST_STREAM1, DIRECTORY + File.separator + TEST_STREAM2);
07671572 97 if (fExperiment == null) {
0879b6b9 98 fExperiment = new TmfExperimentStub<TmfEvent>(EXPERIMENT, (ITmfTrace<TmfEvent>[]) fTraces, BLOCK_SIZE);
9e0640dc 99 fExperiment.getIndexer().buildIndex(0, TmfTimeRange.ETERNITY, true);
07671572 100 }
25e48683 101 }
d18dd09b 102
25e48683
FC
103 @Override
104 protected void tearDown() throws Exception {
105 super.tearDown();
106 }
d18dd09b
ASL
107
108 // ------------------------------------------------------------------------
109 // Constructor
110 // ------------------------------------------------------------------------
111
25e48683 112 public void testBasicTmfExperimentConstructor() {
9b635e61 113
25e48683 114 assertEquals("GetId", EXPERIMENT, fExperiment.getName());
d18dd09b
ASL
115 assertEquals("GetNbEvents", NB_EVENTS, fExperiment.getNbEvents());
116
25e48683 117 final TmfTimeRange timeRange = fExperiment.getTimeRange();
d18dd09b
ASL
118 assertEquals("getStartTime", 1, timeRange.getStartTime().getValue());
119 assertEquals("getEndTime", NB_EVENTS, timeRange.getEndTime().getValue());
25e48683 120 }
d18dd09b 121
d18dd09b 122 // ------------------------------------------------------------------------
0316808c 123 // seekEvent on rank
d18dd09b
ASL
124 // ------------------------------------------------------------------------
125
0316808c 126 public void testSeekRankOnCacheBoundary() throws Exception {
d18dd09b 127
0316808c 128 long cacheSize = fExperiment.getCacheSize();
9b635e61 129
0316808c
FC
130 // On lower bound, returns the first event (TS = 1)
131 ITmfContext context = fExperiment.seekEvent(0);
132 assertEquals("Context rank", 0, context.getRank());
25e48683 133
c32744d6 134 ITmfEvent event = fExperiment.getNext(context);
d18dd09b 135 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
0316808c 136 assertEquals("Context rank", 1, context.getRank());
25e48683 137
0316808c
FC
138 // Position trace at event rank [cacheSize]
139 context = fExperiment.seekEvent(cacheSize);
140 assertEquals("Context rank", cacheSize, context.getRank());
25e48683 141
c32744d6 142 event = fExperiment.getNext(context);
0316808c
FC
143 assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue());
144 assertEquals("Context rank", cacheSize + 1, context.getRank());
d18dd09b 145
0316808c
FC
146 // Position trace at event rank [4 * cacheSize]
147 context = fExperiment.seekEvent(4 * cacheSize);
148 assertEquals("Context rank", 4 * cacheSize, context.getRank());
25e48683 149
c32744d6 150 event = fExperiment.getNext(context);
0316808c
FC
151 assertEquals("Event timestamp", 4 * cacheSize + 1, event.getTimestamp().getValue());
152 assertEquals("Context rank", 4 * cacheSize + 1, context.getRank());
d18dd09b
ASL
153 }
154
0316808c 155 public void testSeekRankNotOnCacheBoundary() throws Exception {
d18dd09b 156
0316808c 157 long cacheSize = fExperiment.getCacheSize();
25e48683 158
0316808c
FC
159 // Position trace at event rank 9
160 ITmfContext context = fExperiment.seekEvent(9);
161 assertEquals("Context rank", 9, context.getRank());
25e48683 162
c32744d6 163 ITmfEvent event = fExperiment.getNext(context);
d18dd09b 164 assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
0316808c 165 assertEquals("Context rank", 10, context.getRank());
d18dd09b 166
0316808c
FC
167 // Position trace at event rank [cacheSize - 1]
168 context = fExperiment.seekEvent(cacheSize - 1);
169 assertEquals("Context rank", cacheSize - 1, context.getRank());
25e48683 170
c32744d6 171 event = fExperiment.getNext(context);
0316808c
FC
172 assertEquals("Event timestamp", cacheSize, event.getTimestamp().getValue());
173 assertEquals("Context rank", cacheSize, context.getRank());
d18dd09b 174
0316808c
FC
175 // Position trace at event rank [cacheSize + 1]
176 context = fExperiment.seekEvent(cacheSize + 1);
177 assertEquals("Context rank", cacheSize + 1, context.getRank());
25e48683 178
c32744d6 179 event = fExperiment.getNext(context);
0316808c
FC
180 assertEquals("Event timestamp", cacheSize + 2, event.getTimestamp().getValue());
181 assertEquals("Context rank", cacheSize + 2, context.getRank());
d18dd09b 182
25e48683 183 // Position trace at event rank 4500
0316808c
FC
184 context = fExperiment.seekEvent(4500);
185 assertEquals("Context rank", 4500, context.getRank());
25e48683 186
c32744d6 187 event = fExperiment.getNext(context);
d18dd09b 188 assertEquals("Event timestamp", 4501, event.getTimestamp().getValue());
0316808c 189 assertEquals("Context rank", 4501, context.getRank());
d18dd09b
ASL
190 }
191
0316808c 192 public void testSeekRankOutOfScope() throws Exception {
d18dd09b 193
25e48683 194 // Position trace at beginning
0316808c 195 ITmfContext context = fExperiment.seekEvent(-1);
d18dd09b 196 assertEquals("Event rank", 0, context.getRank());
25e48683 197
c32744d6 198 ITmfEvent event = fExperiment.getNext(context);
d18dd09b 199 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
0316808c 200 assertEquals("Context rank", 1, context.getRank());
d18dd09b 201
25e48683 202 // Position trace at event passed the end
0316808c
FC
203 context = fExperiment.seekEvent(NB_EVENTS);
204 assertEquals("Context rank", NB_EVENTS, context.getRank());
205
c32744d6 206 event = fExperiment.getNext(context);
0316808c
FC
207 assertNull("Event", event);
208 assertEquals("Context rank", NB_EVENTS, context.getRank());
d18dd09b
ASL
209 }
210
25e48683
FC
211 // ------------------------------------------------------------------------
212 // seekEvent on timestamp
213 // ------------------------------------------------------------------------
214
0316808c 215 public void testSeekTimestampOnCacheBoundary() throws Exception {
25e48683 216
0316808c 217 long cacheSize = fExperiment.getCacheSize();
25e48683 218
0316808c
FC
219 // Position trace at event rank 0
220 ITmfContext context = fExperiment.seekEvent(new TmfTimestamp(1, SCALE, 0));
221 assertEquals("Context rank", 0, context.getRank());
25e48683 222
c32744d6 223 ITmfEvent event = fExperiment.getNext(context);
25e48683 224 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
0316808c 225 assertEquals("Context rank", 1, context.getRank());
25e48683 226
0316808c
FC
227 // Position trace at event rank [cacheSize]
228 context = fExperiment.seekEvent(new TmfTimestamp(cacheSize + 1, SCALE, 0));
229 assertEquals("Event rank", cacheSize, context.getRank());
25e48683 230
c32744d6 231 event = fExperiment.getNext(context);
0316808c
FC
232 assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue());
233 assertEquals("Context rank", cacheSize + 1, context.getRank());
25e48683 234
0316808c
FC
235 // Position trace at event rank [4 * cacheSize]
236 context = fExperiment.seekEvent(new TmfTimestamp(4 * cacheSize + 1, SCALE, 0));
237 assertEquals("Context rank", 4 * cacheSize, context.getRank());
25e48683 238
c32744d6 239 event = fExperiment.getNext(context);
0316808c
FC
240 assertEquals("Event timestamp", 4 * cacheSize + 1, event.getTimestamp().getValue());
241 assertEquals("Context rank", 4 * cacheSize + 1, context.getRank());
25e48683
FC
242 }
243
0316808c 244 public void testSeekTimestampNotOnCacheBoundary() throws Exception {
25e48683 245
0316808c
FC
246 // Position trace at event rank 1 (TS = 2)
247 ITmfContext context = fExperiment.seekEvent(new TmfTimestamp(2, SCALE, 0));
248 assertEquals("Context rank", 1, context.getRank());
25e48683 249
c32744d6 250 ITmfEvent event = fExperiment.getNext(context);
25e48683 251 assertEquals("Event timestamp", 2, event.getTimestamp().getValue());
0316808c 252 assertEquals("Context rank", 2, context.getRank());
25e48683 253
0316808c 254 // Position trace at event rank 9 (TS = 10)
25e48683 255 context = fExperiment.seekEvent(new TmfTimestamp(10, SCALE, 0));
0316808c 256 assertEquals("Context rank", 9, context.getRank());
25e48683 257
c32744d6 258 event = fExperiment.getNext(context);
25e48683 259 assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
0316808c 260 assertEquals("Context rank", 10, context.getRank());
25e48683 261
0316808c 262 // Position trace at event rank 999 (TS = 1000)
25e48683 263 context = fExperiment.seekEvent(new TmfTimestamp(1000, SCALE, 0));
0316808c 264 assertEquals("Context rank", 999, context.getRank());
25e48683 265
c32744d6 266 event = fExperiment.getNext(context);
25e48683 267 assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
0316808c 268 assertEquals("Context rank", 1000, context.getRank());
25e48683 269
0316808c 270 // Position trace at event rank 1001 (TS = 1002)
25e48683 271 context = fExperiment.seekEvent(new TmfTimestamp(1002, SCALE, 0));
0316808c 272 assertEquals("Context rank", 1001, context.getRank());
25e48683 273
c32744d6 274 event = fExperiment.getNext(context);
25e48683 275 assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
0316808c 276 assertEquals("Context rank", 1002, context.getRank());
25e48683 277
0316808c 278 // Position trace at event rank 4500 (TS = 4501)
25e48683 279 context = fExperiment.seekEvent(new TmfTimestamp(4501, SCALE, 0));
0316808c 280 assertEquals("Context rank", 4500, context.getRank());
25e48683 281
c32744d6 282 event = fExperiment.getNext(context);
25e48683 283 assertEquals("Event timestamp", 4501, event.getTimestamp().getValue());
0316808c 284 assertEquals("Context rank", 4501, context.getRank());
25e48683
FC
285 }
286
0316808c 287 public void testSeekTimestampOutOfScope() throws Exception {
25e48683
FC
288
289 // Position trace at beginning
0316808c 290 ITmfContext context = fExperiment.seekEvent(new TmfTimestamp(-1, SCALE, 0));
25e48683
FC
291 assertEquals("Event rank", 0, context.getRank());
292
c32744d6 293 ITmfEvent event = fExperiment.getNext(context);
25e48683
FC
294 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
295 assertEquals("Event rank", 1, context.getRank());
296
297 // Position trace at event passed the end
298 context = fExperiment.seekEvent(new TmfTimestamp(NB_EVENTS + 1, SCALE, 0));
c32744d6 299 event = fExperiment.getNext(context);
0316808c 300 assertNull("Event location", event);
9b635e61 301 assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
25e48683
FC
302 }
303
304 // ------------------------------------------------------------------------
0316808c 305 // seekEvent by location (context rank is undefined)
25e48683
FC
306 // ------------------------------------------------------------------------
307
0316808c
FC
308 public void testSeekLocationOnCacheBoundary() throws Exception {
309
310 long cacheSize = fExperiment.getCacheSize();
25e48683 311
0316808c
FC
312 // Position trace at event rank 0
313 ITmfContext tmpContext = fExperiment.seekEvent(0);
314 ITmfContext context = fExperiment.seekEvent(tmpContext.getLocation());
25e48683 315
c32744d6 316 ITmfEvent event = fExperiment.getNext(context);
25e48683 317 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
25e48683 318
c32744d6 319 event = fExperiment.getNext(context);
0316808c 320 assertEquals("Event timestamp", 2, event.getTimestamp().getValue());
25e48683 321
0316808c
FC
322 // Position trace at event rank 'cacheSize'
323 tmpContext = fExperiment.seekEvent(cacheSize);
324 context = fExperiment.seekEvent(tmpContext.getLocation());
25e48683 325
c32744d6 326 event = fExperiment.getNext(context);
0316808c 327 assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue());
25e48683 328
c32744d6 329 event = fExperiment.getNext(context);
0316808c 330 assertEquals("Event timestamp", cacheSize + 2, event.getTimestamp().getValue());
25e48683 331
0316808c
FC
332 // Position trace at event rank 4 * 'cacheSize'
333 tmpContext = fExperiment.seekEvent(4 * cacheSize);
334 context = fExperiment.seekEvent(tmpContext.getLocation());
25e48683 335
c32744d6 336 event = fExperiment.getNext(context);
0316808c 337 assertEquals("Event timestamp", 4 * cacheSize + 1, event.getTimestamp().getValue());
25e48683 338
c32744d6 339 event = fExperiment.getNext(context);
0316808c 340 assertEquals("Event timestamp", 4 * cacheSize + 2, event.getTimestamp().getValue());
25e48683
FC
341 }
342
0316808c 343 public void testSeekLocationNotOnCacheBoundary() throws Exception {
25e48683 344
0316808c 345 long cacheSize = fExperiment.getCacheSize();
25e48683 346
0316808c
FC
347 // Position trace at event 'cacheSize' - 1
348 ITmfContext tmpContext = fExperiment.seekEvent(cacheSize - 1);
349 ITmfContext context = fExperiment.seekEvent(tmpContext.getLocation());
25e48683 350
c32744d6 351 ITmfEvent event = fExperiment.getNext(context);
0316808c 352 assertEquals("Event timestamp", cacheSize, event.getTimestamp().getValue());
25e48683 353
c32744d6 354 event = fExperiment.getNext(context);
0316808c 355 assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue());
25e48683 356
0316808c
FC
357 // Position trace at event rank 2 * 'cacheSize' - 1
358 tmpContext = fExperiment.seekEvent(2 * cacheSize - 1);
359 context = fExperiment.seekEvent(tmpContext.getLocation());
360 context = fExperiment.seekEvent(2 * cacheSize - 1);
25e48683 361
c32744d6 362 event = fExperiment.getNext(context);
0316808c 363 assertEquals("Event timestamp", 2 * cacheSize, event.getTimestamp().getValue());
25e48683 364
c32744d6 365 event = fExperiment.getNext(context);
0316808c 366 assertEquals("Event timestamp", 2 * cacheSize + 1, event.getTimestamp().getValue());
25e48683
FC
367
368 // Position trace at event rank 4500
0316808c
FC
369 tmpContext = fExperiment.seekEvent(4500);
370 context = fExperiment.seekEvent(tmpContext.getLocation());
25e48683 371
c32744d6 372 event = fExperiment.getNext(context);
25e48683 373 assertEquals("Event timestamp", 4501, event.getTimestamp().getValue());
25e48683 374
c32744d6 375 event = fExperiment.getNext(context);
0316808c 376 assertEquals("Event timestamp", 4502, event.getTimestamp().getValue());
25e48683
FC
377 }
378
0316808c 379 public void testSeekLocationOutOfScope() throws Exception {
25e48683
FC
380
381 // Position trace at beginning
0316808c 382 ITmfContext context = fExperiment.seekEvent((ITmfLocation<?>) null);
25e48683 383
c32744d6 384 ITmfEvent event = fExperiment.getNext(context);
25e48683 385 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
25e48683 386 }
d18dd09b 387
9b635e61 388 // ------------------------------------------------------------------------
f3fd42d1 389 // readtNextEvent - updates the context
9b635e61 390 // ------------------------------------------------------------------------
d18dd09b 391
f3fd42d1 392 public void testReadNextEvent() throws Exception {
9b635e61 393
25e48683 394 // On lower bound, returns the first event (ts = 0)
0316808c 395 final ITmfContext context = fExperiment.seekEvent(0);
c32744d6 396 ITmfEvent event = fExperiment.getNext(context);
d18dd09b 397 assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
d18dd09b 398
9b635e61 399 for (int i = 2; i < 20; i++) {
c32744d6 400 event = fExperiment.getNext(context);
9b635e61
FC
401 assertEquals("Event timestamp", i, event.getTimestamp().getValue());
402 }
d18dd09b 403 }
9b635e61 404
d18dd09b
ASL
405 // ------------------------------------------------------------------------
406 // processRequest
407 // ------------------------------------------------------------------------
408
409 public void testProcessRequestForNbEvents() throws Exception {
9b635e61 410
25e48683 411 final int blockSize = 100;
d18dd09b
ASL
412 final int nbEvents = 1000;
413 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
414
25e48683 415 final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
d18dd09b 416 final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
25e48683
FC
417 @Override
418 public void handleData(final TmfEvent event) {
419 super.handleData(event);
420 requestedEvents.add(event);
421 }
d18dd09b
ASL
422 };
423 fExperiment.sendRequest(request);
424 request.waitForCompletion();
425
426 assertEquals("nbEvents", nbEvents, requestedEvents.size());
427 assertTrue("isCompleted", request.isCompleted());
428 assertFalse("isCancelled", request.isCancelled());
429
430 // Ensure that we have distinct events.
25e48683 431 // Don't go overboard: we are not validating the stub!
20658947 432 for (int i = 0; i < nbEvents; i++) {
d18dd09b 433 assertEquals("Distinct events", i+1, requestedEvents.get(i).getTimestamp().getValue());
20658947 434 }
d18dd09b 435 }
25e48683 436
d18dd09b 437 public void testProcessRequestForNbEvents2() throws Exception {
9b635e61 438
25e48683 439 final int blockSize = 2 * NB_EVENTS;
d18dd09b
ASL
440 final int nbEvents = 1000;
441 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
442
25e48683 443 final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
d18dd09b 444 final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
25e48683
FC
445 @Override
446 public void handleData(final TmfEvent event) {
447 super.handleData(event);
448 requestedEvents.add(event);
449 }
d18dd09b
ASL
450 };
451 fExperiment.sendRequest(request);
452 request.waitForCompletion();
453
454 assertEquals("nbEvents", nbEvents, requestedEvents.size());
455 assertTrue("isCompleted", request.isCompleted());
456 assertFalse("isCancelled", request.isCancelled());
457
458 // Ensure that we have distinct events.
25e48683 459 // Don't go overboard: we are not validating the stub!
20658947 460 for (int i = 0; i < nbEvents; i++) {
d18dd09b 461 assertEquals("Distinct events", i+1, requestedEvents.get(i).getTimestamp().getValue());
20658947 462 }
d18dd09b 463 }
25e48683 464
d18dd09b 465 public void testProcessRequestForAllEvents() throws Exception {
9b635e61 466
25e48683 467 final int nbEvents = TmfEventRequest.ALL_DATA;
d18dd09b
ASL
468 final int blockSize = 1;
469 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
25e48683 470 final long nbExpectedEvents = NB_EVENTS;
d18dd09b 471
25e48683 472 final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
d18dd09b 473 final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
25e48683
FC
474 @Override
475 public void handleData(final TmfEvent event) {
476 super.handleData(event);
477 requestedEvents.add(event);
478 }
d18dd09b
ASL
479 };
480 fExperiment.sendRequest(request);
481 request.waitForCompletion();
482
9b635e61 483 assertEquals("nbEvents", nbExpectedEvents, requestedEvents.size());
d18dd09b
ASL
484 assertTrue("isCompleted", request.isCompleted());
485 assertFalse("isCancelled", request.isCancelled());
486
487 // Ensure that we have distinct events.
25e48683 488 // Don't go overboard: we are not validating the stub!
20658947 489 for (int i = 0; i < nbExpectedEvents; i++) {
d18dd09b 490 assertEquals("Distinct events", i+1, requestedEvents.get(i).getTimestamp().getValue());
20658947 491 }
d18dd09b 492 }
25e48683 493
d18dd09b
ASL
494 // ------------------------------------------------------------------------
495 // cancel
496 // ------------------------------------------------------------------------
497
498 public void testCancel() throws Exception {
9b635e61 499
25e48683 500 final int nbEvents = NB_EVENTS;
9b635e61 501 final int blockSize = BLOCK_SIZE;
d18dd09b
ASL
502 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
503
25e48683 504 final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
d18dd09b 505 final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
25e48683
FC
506 int nbRead = 0;
507 @Override
508 public void handleData(final TmfEvent event) {
509 super.handleData(event);
510 requestedEvents.add(event);
20658947 511 if (++nbRead == blockSize) {
25e48683 512 cancel();
20658947 513 }
25e48683 514 }
9b635e61
FC
515 @Override
516 public void handleCancel() {
20658947 517 if (requestedEvents.size() < blockSize) {
25e48683 518 System.out.println("aie");
20658947 519 }
9b635e61 520 }
d18dd09b
ASL
521 };
522 fExperiment.sendRequest(request);
523 request.waitForCompletion();
524
525 assertEquals("nbEvents", blockSize, requestedEvents.size());
526 assertTrue("isCompleted", request.isCompleted());
527 assertTrue("isCancelled", request.isCancelled());
528 }
25e48683 529
d18dd09b
ASL
530 // ------------------------------------------------------------------------
531 // getTimestamp
532 // ------------------------------------------------------------------------
533
534 public void testGetTimestamp() throws Exception {
9b635e61 535
25e48683 536 assertTrue("getTimestamp", fExperiment.getTimestamp( 0).equals(new TmfTimestamp( 1, (byte) -3)));
d18dd09b
ASL
537 assertTrue("getTimestamp", fExperiment.getTimestamp( 10).equals(new TmfTimestamp( 11, (byte) -3)));
538 assertTrue("getTimestamp", fExperiment.getTimestamp( 100).equals(new TmfTimestamp( 101, (byte) -3)));
539 assertTrue("getTimestamp", fExperiment.getTimestamp(1000).equals(new TmfTimestamp(1001, (byte) -3)));
540 assertTrue("getTimestamp", fExperiment.getTimestamp(2000).equals(new TmfTimestamp(2001, (byte) -3)));
541 assertTrue("getTimestamp", fExperiment.getTimestamp(2500).equals(new TmfTimestamp(2501, (byte) -3)));
542 }
543
544}
This page took 0.069286 seconds and 5 git commands to generate.