1 /*******************************************************************************
2 * Copyright (c) 2009, 2010 Ericsson
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
10 * Francois Chouinard - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.linuxtools
.tmf
.core
.tests
.request
;
16 import java
.io
.IOException
;
17 import java
.net
.URISyntaxException
;
19 import java
.util
.Vector
;
21 import junit
.framework
.TestCase
;
23 import org
.eclipse
.core
.runtime
.FileLocator
;
24 import org
.eclipse
.core
.runtime
.Path
;
25 import org
.eclipse
.linuxtools
.internal
.tmf
.core
.component
.TmfProviderManager
;
26 import org
.eclipse
.linuxtools
.internal
.tmf
.core
.request
.TmfCoalescedDataRequest
;
27 import org
.eclipse
.linuxtools
.internal
.tmf
.core
.request
.TmfCoalescedEventRequest
;
28 import org
.eclipse
.linuxtools
.tmf
.core
.component
.ITmfDataProvider
;
29 import org
.eclipse
.linuxtools
.tmf
.core
.event
.TmfEvent
;
30 import org
.eclipse
.linuxtools
.tmf
.core
.event
.TmfTimeRange
;
31 import org
.eclipse
.linuxtools
.tmf
.core
.event
.TmfTimestamp
;
32 import org
.eclipse
.linuxtools
.tmf
.core
.exceptions
.TmfTraceException
;
33 import org
.eclipse
.linuxtools
.tmf
.core
.request
.ITmfDataRequest
.ExecutionType
;
34 import org
.eclipse
.linuxtools
.tmf
.core
.request
.TmfDataRequest
;
35 import org
.eclipse
.linuxtools
.tmf
.core
.request
.TmfEventRequest
;
36 import org
.eclipse
.linuxtools
.tmf
.core
.signal
.TmfSignal
;
37 import org
.eclipse
.linuxtools
.tmf
.core
.signal
.TmfSignalHandler
;
38 import org
.eclipse
.linuxtools
.tmf
.core
.signal
.TmfSignalManager
;
39 import org
.eclipse
.linuxtools
.tmf
.core
.tests
.TmfCoreTestPlugin
;
40 import org
.eclipse
.linuxtools
.tmf
.tests
.stubs
.request
.TmfEventRequestStub
;
41 import org
.eclipse
.linuxtools
.tmf
.tests
.stubs
.trace
.TmfTraceStub
;
44 * <b><u>TmfCoalescedEventRequestTest</u></b>
46 * Test suite for the TmfCoalescedEventRequest class.
48 @SuppressWarnings({ "nls" })
49 public class TmfCoalescedEventRequestTest
extends TestCase
{
51 // ------------------------------------------------------------------------
53 // ------------------------------------------------------------------------
55 private final TmfTimeRange range1
= new TmfTimeRange(TmfTimeRange
.ETERNITY
);
56 private final TmfTimeRange range2
= new TmfTimeRange(new TmfTimestamp(), TmfTimestamp
.BIG_CRUNCH
);
58 private TmfCoalescedEventRequest
<TmfEvent
> fRequest1
;
59 private TmfCoalescedEventRequest
<TmfEvent
> fRequest2
;
60 private TmfCoalescedEventRequest
<TmfEvent
> fRequest3
;
61 private TmfCoalescedEventRequest
<TmfEvent
> fRequest4
;
63 private TmfCoalescedEventRequest
<TmfEvent
> fRequest1b
;
64 private TmfCoalescedEventRequest
<TmfEvent
> fRequest1c
;
66 private int fRequestCount
;
68 // ------------------------------------------------------------------------
70 // ------------------------------------------------------------------------
72 public TmfCoalescedEventRequestTest(String name
) {
77 public void setUp() throws Exception
{
79 TmfDataRequest
.reset();
80 fRequest1
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200);
81 fRequest2
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range2
, 100, 200);
82 fRequest3
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range2
, 200, 200);
83 fRequest4
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range2
, 200, 300);
85 fRequest1b
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200);
86 fRequest1c
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200);
88 fRequestCount
= fRequest1c
.getRequestId() + 1;
92 public void tearDown() throws Exception
{
96 private TmfCoalescedEventRequest
<TmfEvent
> setupTestRequest(final boolean[] flags
) {
98 TmfCoalescedEventRequest
<TmfEvent
> request
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200) {
100 public void handleCompleted() {
101 super.handleCompleted();
105 public void handleSuccess() {
106 super.handleSuccess();
110 public void handleFailure() {
111 super.handleFailure();
115 public void handleCancel() {
116 super.handleCancel();
123 // ------------------------------------------------------------------------
125 // ------------------------------------------------------------------------
127 public void testTmfCoalescedEventRequest() {
128 TmfCoalescedEventRequest
<TmfEvent
> request
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class);
130 assertEquals("getRequestId", fRequestCount
++, request
.getRequestId());
131 assertEquals("getDataType", TmfEvent
.class, request
.getDataType());
133 assertEquals("getRange", range1
, request
.getRange());
134 assertEquals("getNbRequestedEvents", TmfDataRequest
.ALL_DATA
, request
.getNbRequested());
136 assertFalse("isCompleted", request
.isCompleted());
137 assertFalse("isFailed", request
.isFailed());
138 assertFalse("isCancelled", request
.isCancelled());
140 assertEquals("getNbRead", 0, request
.getNbRead());
143 public void testTmfCoalescedEventRequestIndex() {
144 TmfCoalescedEventRequest
<TmfEvent
> request
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range1
);
146 assertEquals("getRequestId", fRequestCount
++, request
.getRequestId());
147 assertEquals("getDataType", TmfEvent
.class, request
.getDataType());
149 assertEquals("getRange", range1
, request
.getRange());
150 assertEquals("getNbRequestedEvents", TmfDataRequest
.ALL_DATA
, request
.getNbRequested());
152 assertFalse("isCompleted", request
.isCompleted());
153 assertFalse("isFailed", request
.isFailed());
154 assertFalse("isCancelled", request
.isCancelled());
156 assertEquals("getNbRead", 0, request
.getNbRead());
159 public void testTmfCoalescedEventRequestIndexNbRequested() {
160 TmfCoalescedEventRequest
<TmfEvent
> request
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range1
, 100);
162 assertEquals("getRequestId", fRequestCount
++, request
.getRequestId());
163 assertEquals("getDataType", TmfEvent
.class, request
.getDataType());
165 assertEquals("getRange", range1
, request
.getRange());
166 assertEquals("getNbRequestedEvents", 100, request
.getNbRequested());
168 assertFalse("isCompleted", request
.isCompleted());
169 assertFalse("isFailed", request
.isFailed());
170 assertFalse("isCancelled", request
.isCancelled());
172 assertEquals("getNbRead", 0, request
.getNbRead());
175 public void testTmfCoalescedEventRequestIndexNbEventsBlocksize() {
176 TmfCoalescedEventRequest
<TmfEvent
> request
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200);
178 assertEquals("getRequestId", fRequestCount
++, request
.getRequestId());
179 assertEquals("getDataType", TmfEvent
.class, request
.getDataType());
181 assertEquals("getRange", range1
, request
.getRange());
182 assertEquals("getNbRequestedEvents", 100, request
.getNbRequested());
184 assertFalse("isCompleted", request
.isCompleted());
185 assertFalse("isFailed", request
.isFailed());
186 assertFalse("isCancelled", request
.isCancelled());
188 assertEquals("getNbRead", 0, request
.getNbRead());
191 // ------------------------------------------------------------------------
193 // ------------------------------------------------------------------------
195 public void testEqualsReflexivity() throws Exception
{
196 assertTrue("equals", fRequest1
.equals(fRequest1
));
197 assertTrue("equals", fRequest2
.equals(fRequest2
));
199 assertFalse("equals", fRequest1
.equals(fRequest2
));
200 assertFalse("equals", fRequest2
.equals(fRequest1
));
203 public void testEqualsSymmetry() throws Exception
{
204 assertTrue("equals", fRequest1
.equals(fRequest1b
));
205 assertTrue("equals", fRequest1b
.equals(fRequest1
));
207 assertFalse("equals", fRequest1
.equals(fRequest3
));
208 assertFalse("equals", fRequest2
.equals(fRequest3
));
209 assertFalse("equals", fRequest3
.equals(fRequest1
));
210 assertFalse("equals", fRequest3
.equals(fRequest2
));
213 public void testEqualsTransivity() throws Exception
{
214 assertTrue("equals", fRequest1
.equals(fRequest1b
));
215 assertTrue("equals", fRequest1b
.equals(fRequest1c
));
216 assertTrue("equals", fRequest1
.equals(fRequest1c
));
219 public void testEqualsNull() throws Exception
{
220 assertFalse("equals", fRequest1
.equals(null));
221 assertFalse("equals", fRequest2
.equals(null));
224 public void testEqualsSuper() throws Exception
{
225 TmfCoalescedDataRequest
<TmfEvent
> dataRequest1
= new TmfCoalescedDataRequest
<TmfEvent
>(
226 fRequest1
.getDataType(), fRequest1
.getIndex(), fRequest1
.getNbRequested());
227 TmfCoalescedDataRequest
<TmfEvent
> dataRequest2
= new TmfCoalescedDataRequest
<TmfEvent
>(
228 fRequest1
.getDataType(), fRequest1
.getIndex(), fRequest1
.getNbRequested());
229 TmfCoalescedDataRequest
<TmfEvent
> dataRequest3
= new TmfCoalescedDataRequest
<TmfEvent
>(
230 fRequest3
.getDataType(), fRequest3
.getIndex(), fRequest3
.getNbRequested());
232 assertTrue("equals", fRequest1
.equals(dataRequest2
));
233 assertTrue("equals", fRequest2
.equals(dataRequest1
));
234 assertFalse("equals", fRequest1
.equals(dataRequest3
));
235 assertFalse("equals", fRequest3
.equals(dataRequest1
));
238 // ------------------------------------------------------------------------
240 // ------------------------------------------------------------------------
242 public void testHashCode() throws Exception
{
243 assertTrue("hashCode", fRequest1
.hashCode() == fRequest1
.hashCode());
244 assertTrue("hashCode", fRequest2
.hashCode() == fRequest2
.hashCode());
245 assertTrue("hashCode", fRequest1
.hashCode() != fRequest2
.hashCode());
248 // ------------------------------------------------------------------------
250 // ------------------------------------------------------------------------
252 public void testToString() {
253 String expected1
= "[TmfCoalescedEventRequest(0,TmfEvent," + range1
+ ",0,100,200)]";
254 String expected2
= "[TmfCoalescedEventRequest(1,TmfEvent," + range2
+ ",0,100,200)]";
255 String expected3
= "[TmfCoalescedEventRequest(2,TmfEvent," + range2
+ ",0,200,200)]";
256 String expected4
= "[TmfCoalescedEventRequest(3,TmfEvent," + range2
+ ",0,200,300)]";
258 assertEquals("toString", expected1
, fRequest1
.toString());
259 assertEquals("toString", expected2
, fRequest2
.toString());
260 assertEquals("toString", expected3
, fRequest3
.toString());
261 assertEquals("toString", expected4
, fRequest4
.toString());
264 // ------------------------------------------------------------------------
266 // ------------------------------------------------------------------------
268 public void testIsCompatible() {
269 TmfCoalescedEventRequest
<TmfEvent
> coalescedRequest
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200);
270 TmfEventRequest
<TmfEvent
> request1
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200);
271 TmfEventRequest
<TmfEvent
> request2
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range2
, 100, 200);
272 TmfEventRequest
<TmfEvent
> request3
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range1
, 101, 200);
274 assertTrue("isCompatible", coalescedRequest
.isCompatible(request1
));
275 assertTrue("isCompatible", coalescedRequest
.isCompatible(request2
));
276 assertTrue("isCompatible", coalescedRequest
.isCompatible(request3
));
279 // ------------------------------------------------------------------------
281 // ------------------------------------------------------------------------
283 public void testAddEvent1() {
284 TmfCoalescedEventRequest
<TmfEvent
> coalescedRequest
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range1
, 0, 2147483647, 200, ExecutionType
.FOREGROUND
);
285 TmfEventRequest
<TmfEvent
> request1
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range1
, 0, 2147483647, 200);
286 TmfEventRequest
<TmfEvent
> request2
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range1
, 1, 2147483647, 200);
288 assertTrue("isCompatible", coalescedRequest
.isCompatible(request1
));
289 assertTrue("isCompatible", coalescedRequest
.isCompatible(request2
));
291 coalescedRequest
.addRequest(request1
);
292 coalescedRequest
.addRequest(request2
);
294 assertEquals("addRequest", 0, coalescedRequest
.getIndex());
295 assertEquals("addRequest", 2147483647, coalescedRequest
.getNbRequested());
296 assertEquals("addRequest", 200, coalescedRequest
.getBlockSize());
300 public void testAddEvent2() {
301 TmfCoalescedEventRequest
<TmfEvent
> coalescedRequest
= new TmfCoalescedEventRequest
<TmfEvent
>(TmfEvent
.class, range1
, 1, 2147483647, 200, ExecutionType
.FOREGROUND
);
302 TmfEventRequest
<TmfEvent
> request1
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range1
, 1, 2147483647, 200);
303 TmfEventRequest
<TmfEvent
> request2
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range1
, 0, 2147483647, 200);
305 assertTrue("isCompatible", coalescedRequest
.isCompatible(request1
));
306 assertTrue("isCompatible", coalescedRequest
.isCompatible(request2
));
308 coalescedRequest
.addRequest(request1
);
309 coalescedRequest
.addRequest(request2
);
311 assertEquals("addRequest", 0, coalescedRequest
.getIndex());
312 assertEquals("addRequest", 2147483647, coalescedRequest
.getNbRequested());
313 assertEquals("addRequest", 200, coalescedRequest
.getBlockSize());
317 // ------------------------------------------------------------------------
319 // ------------------------------------------------------------------------
321 public void testDone() {
324 final boolean[] crFlags
= new boolean[4];
325 TmfCoalescedEventRequest
<TmfEvent
> request
= setupTestRequest(crFlags
);
326 TmfEventRequest
<TmfEvent
> subRequest1
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200);
327 TmfEventRequest
<TmfEvent
> subRequest2
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200);
328 request
.addRequest(subRequest1
);
329 request
.addRequest(subRequest2
);
333 // Validate the coalescing request
334 assertTrue ("isCompleted", request
.isCompleted());
335 assertFalse("isFailed", request
.isFailed());
336 assertFalse("isCancelled", request
.isCancelled());
338 assertTrue ("handleCompleted", crFlags
[0]);
339 assertTrue ("handleSuccess", crFlags
[1]);
340 assertFalse("handleFailure", crFlags
[2]);
341 assertFalse("handleCancel", crFlags
[3]);
343 // Validate the first coalesced request
344 assertTrue ("isCompleted", subRequest1
.isCompleted());
345 assertFalse("isFailed", subRequest1
.isFailed());
346 assertFalse("isCancelled", subRequest1
.isCancelled());
348 // Validate the second coalesced request
349 assertTrue ("isCompleted", subRequest2
.isCompleted());
350 assertFalse("isFailed", subRequest2
.isFailed());
351 assertFalse("isCancelled", subRequest2
.isCancelled());
354 // ------------------------------------------------------------------------
356 // ------------------------------------------------------------------------
358 public void testFail() {
360 final boolean[] crFlags
= new boolean[4];
361 TmfCoalescedEventRequest
<TmfEvent
> request
= setupTestRequest(crFlags
);
362 TmfEventRequest
<TmfEvent
> subRequest1
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200);
363 TmfEventRequest
<TmfEvent
> subRequest2
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200);
364 request
.addRequest(subRequest1
);
365 request
.addRequest(subRequest2
);
369 // Validate the coalescing request
370 assertTrue ("isCompleted", request
.isCompleted());
371 assertTrue ("isFailed", request
.isFailed());
372 assertFalse("isCancelled", request
.isCancelled());
374 assertTrue ("handleCompleted", crFlags
[0]);
375 assertFalse("handleSuccess", crFlags
[1]);
376 assertTrue ("handleFailure", crFlags
[2]);
377 assertFalse("handleCancel", crFlags
[3]);
379 // Validate the first coalesced request
380 assertTrue ("isCompleted", subRequest1
.isCompleted());
381 assertTrue ("isFailed", subRequest1
.isFailed());
382 assertFalse("isCancelled", subRequest1
.isCancelled());
384 // Validate the second coalesced request
385 assertTrue ("isCompleted", subRequest2
.isCompleted());
386 assertTrue ("isFailed", subRequest2
.isFailed());
387 assertFalse("isCancelled", subRequest2
.isCancelled());
390 // ------------------------------------------------------------------------
392 // ------------------------------------------------------------------------
394 public void testCancel() {
396 final boolean[] crFlags
= new boolean[4];
397 TmfCoalescedEventRequest
<TmfEvent
> request
= setupTestRequest(crFlags
);
398 TmfEventRequest
<TmfEvent
> subRequest1
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200);
399 TmfEventRequest
<TmfEvent
> subRequest2
= new TmfEventRequestStub
<TmfEvent
>(TmfEvent
.class, range1
, 100, 200);
400 request
.addRequest(subRequest1
);
401 request
.addRequest(subRequest2
);
405 // Validate the coalescing request
406 assertTrue ("isCompleted", request
.isCompleted());
407 assertFalse("isFailed", request
.isFailed());
408 assertTrue ("isCancelled", request
.isCancelled());
410 assertTrue ("handleCompleted", crFlags
[0]);
411 assertFalse("handleSuccess", crFlags
[1]);
412 assertFalse("handleFailure", crFlags
[2]);
413 assertTrue ("handleCancel", crFlags
[3]);
415 // Validate the first coalesced request
416 assertTrue ("isCompleted", subRequest1
.isCompleted());
417 assertFalse("isFailed", subRequest1
.isFailed());
418 assertTrue ("isCancelled", subRequest1
.isCancelled());
420 // Validate the second coalesced request
421 assertTrue ("isCompleted", subRequest2
.isCompleted());
422 assertFalse("isFailed", subRequest2
.isFailed());
423 assertTrue ("isCancelled", subRequest2
.isCancelled());
426 // ------------------------------------------------------------------------
428 // ------------------------------------------------------------------------
430 // ------------------------------------------------------------------------
432 // ------------------------------------------------------------------------
434 private static final String DIRECTORY
= "testfiles";
435 private static final String TEST_STREAM
= "A-Test-10K";
436 private static final int NB_EVENTS
= 10000;
437 private static final int BLOCK_SIZE
= 100;
439 // Initialize the test trace
440 private TmfTraceStub fTrace
= null;
441 private synchronized TmfTraceStub
setupTrace(String path
) {
442 if (fTrace
== null) {
444 URL location
= FileLocator
.find(TmfCoreTestPlugin
.getDefault().getBundle(), new Path(path
), null);
445 File test
= new File(FileLocator
.toFileURL(location
).toURI());
446 fTrace
= new TmfTraceStub(test
.getPath(), 500);
447 } catch (TmfTraceException e
) {
449 } catch (URISyntaxException e
) {
451 } catch (IOException e
) {
458 Vector
<TmfEvent
> requestedEvents1
;
459 Vector
<TmfEvent
> requestedEvents2
;
460 Vector
<TmfEvent
> requestedEvents3
;
462 TmfEventRequest
<TmfEvent
> request1
;
463 TmfEventRequest
<TmfEvent
> request2
;
464 TmfEventRequest
<TmfEvent
> request3
;
466 ITmfDataProvider
<TmfEvent
>[] providers
;
468 private static class TmfTestTriggerSignal
extends TmfSignal
{
469 public final boolean forceCancel
;
470 public TmfTestTriggerSignal(Object source
, boolean cancel
) {
472 forceCancel
= cancel
;
477 @SuppressWarnings("unchecked")
479 public void trigger(final TmfTestTriggerSignal signal
) {
481 TmfTimeRange range
= new TmfTimeRange(TmfTimestamp
.BIG_BANG
, TmfTimestamp
.BIG_CRUNCH
);
483 requestedEvents1
= new Vector
<TmfEvent
>();
484 request1
= new TmfEventRequest
<TmfEvent
>(TmfEvent
.class, range
, NB_EVENTS
, BLOCK_SIZE
) {
487 public void handleData(TmfEvent event
) {
488 super.handleData(event
);
489 if (!isCompleted()) {
490 requestedEvents1
.add(event
);
491 if (++nbRead
>= BLOCK_SIZE
&& signal
.forceCancel
) {
498 requestedEvents2
= new Vector
<TmfEvent
>();
499 request2
= new TmfEventRequest
<TmfEvent
>(TmfEvent
.class, range
, NB_EVENTS
, BLOCK_SIZE
) {
501 public void handleData(TmfEvent event
) {
502 super.handleData(event
);
503 if (!isCompleted()) {
504 requestedEvents2
.add(event
);
509 requestedEvents3
= new Vector
<TmfEvent
>();
510 request3
= new TmfEventRequest
<TmfEvent
>(TmfEvent
.class, range
, NB_EVENTS
, BLOCK_SIZE
) {
512 public void handleData(TmfEvent event
) {
513 super.handleData(event
);
514 if (!isCompleted()) {
515 requestedEvents3
.add(event
);
520 providers
= (ITmfDataProvider
<TmfEvent
>[]) TmfProviderManager
.getProviders(TmfEvent
.class, TmfTraceStub
.class);
521 providers
[0].sendRequest(request1
);
522 providers
[0].sendRequest(request2
);
523 providers
[0].sendRequest(request3
);
526 public void testCoalescedRequest() throws Exception
{
528 fTrace
= setupTrace(DIRECTORY
+ File
.separator
+ TEST_STREAM
);
530 TmfSignalManager
.register(this);
531 TmfTestTriggerSignal signal
= new TmfTestTriggerSignal(this, false);
532 TmfSignalManager
.dispatchSignal(signal
);
534 request1
.waitForCompletion();
535 request2
.waitForCompletion();
536 request3
.waitForCompletion();
538 assertEquals("Request1: nbEvents", NB_EVENTS
, requestedEvents1
.size());
539 assertTrue ("Request1: isCompleted", request1
.isCompleted());
540 assertFalse ("Request1: isCancelled", request1
.isCancelled());
542 assertEquals("Request2: nbEvents", NB_EVENTS
, requestedEvents2
.size());
543 assertTrue ("Request2: isCompleted", request2
.isCompleted());
544 assertFalse ("Request2: isCancelled", request2
.isCancelled());
546 assertEquals("Request3: nbEvents", NB_EVENTS
, requestedEvents3
.size());
547 assertTrue ("Request3: isCompleted", request3
.isCompleted());
548 assertFalse ("Request3: isCancelled", request3
.isCancelled());
550 // Ensure that we have distinct events.
551 // Don't go overboard: we are not validating the stub!
552 for (int i
= 0; i
< NB_EVENTS
; i
++) {
553 assertEquals("Distinct events", i
+1, requestedEvents1
.get(i
).getTimestamp().getValue());
554 assertEquals("Distinct events", i
+1, requestedEvents2
.get(i
).getTimestamp().getValue());
555 assertEquals("Distinct events", i
+1, requestedEvents3
.get(i
).getTimestamp().getValue());
558 TmfSignalManager
.deregister(this);
563 public void testCancelCoalescedRequest() throws Exception
{
565 fTrace
= setupTrace(DIRECTORY
+ File
.separator
+ TEST_STREAM
);
567 TmfSignalManager
.register(this);
568 TmfTestTriggerSignal signal
= new TmfTestTriggerSignal(this, true);
569 TmfSignalManager
.dispatchSignal(signal
);
571 request1
.waitForCompletion();
572 request2
.waitForCompletion();
573 request3
.waitForCompletion();
575 assertEquals("Request1: nbEvents", BLOCK_SIZE
, requestedEvents1
.size());
576 assertTrue ("Request1: isCompleted", request1
.isCompleted());
577 assertTrue ("Request1: isCancelled", request1
.isCancelled());
579 assertEquals("Request2: nbEvents", NB_EVENTS
, requestedEvents2
.size());
580 assertTrue ("Request2: isCompleted", request2
.isCompleted());
581 assertFalse ("Request2: isCancelled", request2
.isCancelled());
583 assertEquals("Request3: nbEvents", NB_EVENTS
, requestedEvents3
.size());
584 assertTrue ("Request3: isCompleted", request3
.isCompleted());
585 assertFalse ("Request3: isCancelled", request3
.isCancelled());
587 // Ensure that we have distinct events.
588 // Don't go overboard: we are not validating the stub!
589 for (int i
= 0; i
< NB_EVENTS
; i
++) {
590 assertEquals("Distinct events", i
+1, requestedEvents2
.get(i
).getTimestamp().getValue());
591 assertEquals("Distinct events", i
+1, requestedEvents3
.get(i
).getTimestamp().getValue());
594 TmfSignalManager
.deregister(this);