diff options
Diffstat (limited to 'lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/TmfExperimentTest.java')
-rw-r--r-- | lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/TmfExperimentTest.java | 389 |
1 files changed, 221 insertions, 168 deletions
diff --git a/lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/TmfExperimentTest.java b/lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/TmfExperimentTest.java index cdb88b1a1b..3943bd0859 100644 --- a/lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/TmfExperimentTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/TmfExperimentTest.java @@ -29,6 +29,7 @@ import org.eclipse.linuxtools.tmf.experiment.TmfExperiment; import org.eclipse.linuxtools.tmf.experiment.TmfExperimentContext; import org.eclipse.linuxtools.tmf.request.TmfEventRequest; import org.eclipse.linuxtools.tmf.tests.TmfCoreTestPlugin; +import org.eclipse.linuxtools.tmf.trace.ITmfContext; import org.eclipse.linuxtools.tmf.trace.ITmfTrace; import org.eclipse.linuxtools.tmf.trace.TmfCheckpoint; import org.eclipse.linuxtools.tmf.trace.TmfContext; @@ -56,7 +57,7 @@ public class TmfExperimentTest extends TestCase { // Housekeeping // ------------------------------------------------------------------------ - private ITmfTrace[] setupTrace(String path) { + private synchronized static ITmfTrace[] setupTrace(String path) { if (fTraces == null) { fTraces = new ITmfTrace[1]; try { @@ -73,10 +74,9 @@ public class TmfExperimentTest extends TestCase { return fTraces; } - private void setupExperiment() { + private synchronized static void setupExperiment() { if (fExperiment == null) { - fExperiment = new TmfExperiment<TmfEvent>(TmfEvent.class, EXPERIMENT, fTraces); - fExperiment.indexExperiment(); + fExperiment = new TmfExperiment<TmfEvent>(TmfEvent.class, EXPERIMENT, fTraces, TmfTimestamp.Zero, 1000, true); } } @@ -101,6 +101,7 @@ public class TmfExperimentTest extends TestCase { // ------------------------------------------------------------------------ public void testBasicTmfExperimentConstructor() { + assertEquals("GetId", EXPERIMENT, fExperiment.getName()); assertEquals("GetEpoch", TmfTimestamp.Zero, fExperiment.getEpoch()); assertEquals("GetNbEvents", NB_EVENTS, fExperiment.getNbEvents()); @@ -112,182 +113,155 @@ public class TmfExperimentTest extends TestCase { // ------------------------------------------------------------------------ // Verify checkpoints - // Note: seekLocation() does not reliably set the rank // ------------------------------------------------------------------------ public void testValidateCheckpoints() throws Exception { Vector<TmfCheckpoint> checkpoints = fExperiment.getCheckpoints(); -// int pageSize = fExperiment.getCacheSize(); - assertTrue("Checkpoints exist", checkpoints != null); + int pageSize = fExperiment.getCacheSize(); + assertTrue("Checkpoints exist", checkpoints != null); // Validate that each checkpoint points to the right event for (int i = 0; i < checkpoints.size(); i++) { TmfCheckpoint checkpoint = checkpoints.get(i); TmfExperimentContext context = fExperiment.seekLocation(checkpoint.getLocation()); TmfEvent event = fExperiment.parseEvent(context); -// assertEquals("Event rank", context.getRank(), i * pageSize); + assertEquals("Event rank", i * pageSize, context.getRank()); assertTrue("Timestamp", (checkpoint.getTimestamp().compareTo(event.getTimestamp(), false) == 0)); } } // ------------------------------------------------------------------------ - // parseEvent - make sure parseEvent doesn't update the context - // ------------------------------------------------------------------------ - - public void testParseEvent() throws Exception { - - // On lower bound, returns the first event (ts = 1) - TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0)); - - TmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - - for (int i = 1; i < 20; i++) { - event = fExperiment.getNextEvent(context); - assertEquals("Event timestamp", i, event.getTimestamp().getValue()); - } - - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 20, event.getTimestamp().getValue()); - - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 20, event.getTimestamp().getValue()); - } - - // ------------------------------------------------------------------------ - // getNextEvent - updates the context - // ------------------------------------------------------------------------ - - public void testGetNextEvent() throws Exception { - - // On lower bound, returns the first event (ts = 0) - TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0)); - TmfEvent event = fExperiment.getNextEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - - for (int i = 2; i < 20; i++) { - event = fExperiment.getNextEvent(context); - assertEquals("Event timestamp", i, event.getTimestamp().getValue()); - } - } - - // ------------------------------------------------------------------------ // seekLocation - // Note: seekLocation() does not reliably set the rank // ------------------------------------------------------------------------ public void testSeekLocationOnCacheBoundary() throws Exception { // Position trace at event rank 0 TmfContext context = fExperiment.seekLocation(null); -// assertEquals("Event rank", 0, context.getRank()); - TmfEvent event = fExperiment.parseEvent(context); + assertEquals("Event rank", 0, context.getRank()); + + TmfEvent event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); -// assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.getNextEvent(context); + assertEquals("Event rank", 0, context.getRank()); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); -// assertEquals("Event rank", 1, context.getRank()); + assertEquals("Event rank", 1, context.getRank()); + + event = fExperiment.getNextEvent(context); + assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); + assertEquals("Event rank", 2, context.getRank()); // Position trace at event rank 1000 TmfContext tmpContext = fExperiment.seekEvent(new TmfTimestamp(1001, SCALE, 0)); - context = fExperiment.seekLocation(tmpContext.getLocation().clone()); -// assertEquals("Event rank", 1000, context.getRank()); - event = fExperiment.parseEvent(context); + context = fExperiment.seekLocation(tmpContext.getLocation()); + assertEquals("Event rank", 1000, context.getRank()); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); -// assertEquals("Event rank", 1000, context.getRank()); - event = fExperiment.getNextEvent(context); + assertEquals("Event rank", 1000, context.getRank()); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); -// assertEquals("Event rank", 1001, context.getRank()); + assertEquals("Event rank", 1001, context.getRank()); + + event = fExperiment.getNextEvent(context); + assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); + assertEquals("Event rank", 1002, context.getRank()); // Position trace at event rank 4000 tmpContext = fExperiment.seekEvent(new TmfTimestamp(4001, SCALE, 0)); - context = fExperiment.seekLocation(tmpContext.getLocation().clone()); -// assertEquals("Event rank", 4000, context.getRank()); - event = fExperiment.parseEvent(context); + context = fExperiment.seekLocation(tmpContext.getLocation()); + assertEquals("Event rank", 4000, context.getRank()); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); -// assertEquals("Event rank", 4000, context.getRank()); - event = fExperiment.getNextEvent(context); + assertEquals("Event rank", 4000, context.getRank()); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); -// assertEquals("Event rank", 4001, context.getRank()); + assertEquals("Event rank", 4001, context.getRank()); + + event = fExperiment.getNextEvent(context); + assertEquals("Event timestamp", 4002, event.getTimestamp().getValue()); + assertEquals("Event rank", 4002, context.getRank()); } public void testSeekLocationNotOnCacheBoundary() throws Exception { // Position trace at event rank 9 TmfContext tmpContext = fExperiment.seekEvent(new TmfTimestamp(10, SCALE, 0)); - TmfContext context = fExperiment.seekLocation(tmpContext.getLocation().clone()); -// assertEquals("Event rank", 9, context.getRank()); - TmfEvent event = fExperiment.parseEvent(context); + TmfContext context = fExperiment.seekLocation(tmpContext.getLocation()); + assertEquals("Event rank", 9, context.getRank()); + + TmfEvent event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); -// assertEquals("Event rank", 9, context.getRank()); - event = fExperiment.getNextEvent(context); + assertEquals("Event rank", 9, context.getRank()); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); -// assertEquals("Event rank", 10, context.getRank()); + assertEquals("Event rank", 10, context.getRank()); // Position trace at event rank 999 tmpContext = fExperiment.seekEvent(new TmfTimestamp(1000, SCALE, 0)); - context = fExperiment.seekLocation(tmpContext.getLocation().clone()); -// assertEquals("Event rank", 999, context.getRank()); - event = fExperiment.parseEvent(context); + context = fExperiment.seekLocation(tmpContext.getLocation()); + assertEquals("Event rank", 999, context.getRank()); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); -// assertEquals("Event rank", 999, context.getRank()); - event = fExperiment.getNextEvent(context); + assertEquals("Event rank", 999, context.getRank()); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); -// assertEquals("Event rank", 1000, context.getRank()); + assertEquals("Event rank", 1000, context.getRank()); // Position trace at event rank 1001 tmpContext = fExperiment.seekEvent(new TmfTimestamp(1002, SCALE, 0)); - context = fExperiment.seekLocation(tmpContext.getLocation().clone()); -// assertEquals("Event rank", 1001, context.getRank()); - event = fExperiment.parseEvent(context); + context = fExperiment.seekLocation(tmpContext.getLocation()); + assertEquals("Event rank", 1001, context.getRank()); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); -// assertEquals("Event rank", 1001, context.getRank()); - event = fExperiment.getNextEvent(context); + assertEquals("Event rank", 1001, context.getRank()); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); -// assertEquals("Event rank", 1002, context.getRank()); + assertEquals("Event rank", 1002, context.getRank()); // Position trace at event rank 4500 tmpContext = fExperiment.seekEvent(new TmfTimestamp(4501, SCALE, 0)); - context = fExperiment.seekLocation(tmpContext.getLocation().clone()); -// assertEquals("Event rank", 4500, context.getRank()); - event = fExperiment.parseEvent(context); + context = fExperiment.seekLocation(tmpContext.getLocation()); + assertEquals("Event rank", 4500, context.getRank()); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); -// assertEquals("Event rank", 4500, context.getRank()); - event = fExperiment.getNextEvent(context); + assertEquals("Event rank", 4500, context.getRank()); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); -// assertEquals("Event rank", 4501, context.getRank()); + assertEquals("Event rank", 4501, context.getRank()); } public void testSeekLocationOutOfScope() throws Exception { // Position trace at beginning TmfContext tmpContext = fExperiment.seekLocation(null); - TmfContext context = fExperiment.seekLocation(tmpContext.getLocation().clone()); -// assertEquals("Event rank", 0, context.getRank()); - TmfEvent event = fExperiment.parseEvent(context); + TmfContext context = fExperiment.seekLocation(tmpContext.getLocation()); + assertEquals("Event rank", 0, context.getRank()); + + TmfEvent event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); -// assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.getNextEvent(context); + assertEquals("Event rank", 0, context.getRank()); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); -// assertEquals("Event rank", 1, context.getRank()); + assertEquals("Event rank", 1, context.getRank()); // Position trace at event passed the end tmpContext = fExperiment.seekEvent(new TmfTimestamp(NB_EVENTS + 1, SCALE, 0)); - context = fExperiment.seekLocation(tmpContext.getLocation().clone()); -// assertEquals("Event rank", NB_EVENTS, context.getRank()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", null, event); -// assertEquals("Event rank", NB_EVENTS, context.getRank()); - event = fExperiment.getNextEvent(context); - assertEquals("Event timestamp", null, event); -// assertEquals("Event rank", NB_EVENTS, context.getRank()); + assertEquals("Event location", null, tmpContext.getLocation()); + assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, tmpContext.getRank()); } // ------------------------------------------------------------------------ @@ -299,30 +273,36 @@ public class TmfExperimentTest extends TestCase { // Position trace at event rank 0 TmfContext context = fExperiment.seekEvent(new TmfTimestamp(1, SCALE, 0)); assertEquals("Event rank", 0, context.getRank()); - TmfEvent event = fExperiment.parseEvent(context); + + TmfEvent event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 1, context.getRank()); // Position trace at event rank 1000 context = fExperiment.seekEvent(new TmfTimestamp(1001, SCALE, 0)); assertEquals("Event rank", 1000, context.getRank()); - event = fExperiment.parseEvent(context); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); assertEquals("Event rank", 1000, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); assertEquals("Event rank", 1001, context.getRank()); // Position trace at event rank 4000 context = fExperiment.seekEvent(new TmfTimestamp(4001, SCALE, 0)); assertEquals("Event rank", 4000, context.getRank()); - event = fExperiment.parseEvent(context); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); assertEquals("Event rank", 4000, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); assertEquals("Event rank", 4001, context.getRank()); } @@ -332,50 +312,60 @@ public class TmfExperimentTest extends TestCase { // Position trace at event rank 1 TmfContext context = fExperiment.seekEvent(new TmfTimestamp(2, SCALE, 0)); assertEquals("Event rank", 1, context.getRank()); - TmfEvent event = fExperiment.parseEvent(context); + + TmfEvent event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); assertEquals("Event rank", 1, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); assertEquals("Event rank", 2, context.getRank()); // Position trace at event rank 9 context = fExperiment.seekEvent(new TmfTimestamp(10, SCALE, 0)); assertEquals("Event rank", 9, context.getRank()); - event = fExperiment.parseEvent(context); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); assertEquals("Event rank", 9, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); assertEquals("Event rank", 10, context.getRank()); // Position trace at event rank 999 context = fExperiment.seekEvent(new TmfTimestamp(1000, SCALE, 0)); assertEquals("Event rank", 999, context.getRank()); - event = fExperiment.parseEvent(context); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); assertEquals("Event rank", 999, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); assertEquals("Event rank", 1000, context.getRank()); // Position trace at event rank 1001 context = fExperiment.seekEvent(new TmfTimestamp(1002, SCALE, 0)); assertEquals("Event rank", 1001, context.getRank()); - event = fExperiment.parseEvent(context); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); assertEquals("Event rank", 1001, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); assertEquals("Event rank", 1002, context.getRank()); // Position trace at event rank 4500 context = fExperiment.seekEvent(new TmfTimestamp(4501, SCALE, 0)); assertEquals("Event rank", 4500, context.getRank()); - event = fExperiment.parseEvent(context); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); assertEquals("Event rank", 4500, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); assertEquals("Event rank", 4501, context.getRank()); } @@ -385,22 +375,19 @@ public class TmfExperimentTest extends TestCase { // Position trace at beginning TmfContext context = fExperiment.seekEvent(new TmfTimestamp(-1, SCALE, 0)); assertEquals("Event rank", 0, context.getRank()); - TmfEvent event = fExperiment.parseEvent(context); + + TmfEvent event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 1, context.getRank()); // Position trace at event passed the end context = fExperiment.seekEvent(new TmfTimestamp(NB_EVENTS + 1, SCALE, 0)); - assertEquals("Event rank", NB_EVENTS, context.getRank()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", null, event); - assertEquals("Event rank", NB_EVENTS, context.getRank()); - event = fExperiment.getNextEvent(context); - assertEquals("Event timestamp", null, event); - assertEquals("Event rank", NB_EVENTS, context.getRank()); + assertEquals("Event location", null, context.getLocation()); + assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); } // ------------------------------------------------------------------------ @@ -412,30 +399,36 @@ public class TmfExperimentTest extends TestCase { // On lower bound, returns the first event (ts = 1) TmfContext context = fExperiment.seekEvent(0); assertEquals("Event rank", 0, context.getRank()); - TmfEvent event = fExperiment.parseEvent(context); + + TmfEvent event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 1, context.getRank()); // Position trace at event rank 1000 context = fExperiment.seekEvent(1000); assertEquals("Event rank", 1000, context.getRank()); - event = fExperiment.parseEvent(context); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); assertEquals("Event rank", 1000, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); assertEquals("Event rank", 1001, context.getRank()); // Position trace at event rank 4000 context = fExperiment.seekEvent(4000); assertEquals("Event rank", 4000, context.getRank()); - event = fExperiment.parseEvent(context); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); assertEquals("Event rank", 4000, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); assertEquals("Event rank", 4001, context.getRank()); } @@ -445,73 +438,122 @@ public class TmfExperimentTest extends TestCase { // Position trace at event rank 9 TmfContext context = fExperiment.seekEvent(9); assertEquals("Event rank", 9, context.getRank()); - TmfEvent event = fExperiment.parseEvent(context); + + TmfEvent event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); assertEquals("Event rank", 9, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); assertEquals("Event rank", 10, context.getRank()); // Position trace at event rank 999 context = fExperiment.seekEvent(999); assertEquals("Event rank", 999, context.getRank()); - event = fExperiment.parseEvent(context); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); assertEquals("Event rank", 999, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); assertEquals("Event rank", 1000, context.getRank()); // Position trace at event rank 1001 context = fExperiment.seekEvent(1001); assertEquals("Event rank", 1001, context.getRank()); - event = fExperiment.parseEvent(context); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); assertEquals("Event rank", 1001, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); assertEquals("Event rank", 1002, context.getRank()); // Position trace at event rank 4500 context = fExperiment.seekEvent(4500); assertEquals("Event rank", 4500, context.getRank()); - event = fExperiment.parseEvent(context); + + event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); assertEquals("Event rank", 4500, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); assertEquals("Event rank", 4501, context.getRank()); } - public void testSeekEventOnRankOfScope() throws Exception { + public void testSeekEventOnRankOutOfScope() throws Exception { // Position trace at beginning TmfContext context = fExperiment.seekEvent(-1); assertEquals("Event rank", 0, context.getRank()); - TmfEvent event = fExperiment.parseEvent(context); + + TmfEvent event = fExperiment.parseEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.getNextEvent(context); + + event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 1, context.getRank()); // Position trace at event passed the end context = fExperiment.seekEvent(NB_EVENTS); - assertEquals("Event rank", NB_EVENTS, context.getRank()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", null, event); - assertEquals("Event rank", NB_EVENTS, context.getRank()); - event = fExperiment.getNextEvent(context); - assertEquals("Event timestamp", null, event); - assertEquals("Event rank", NB_EVENTS, context.getRank()); + assertEquals("Event location", null, context.getLocation()); + assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); } // ------------------------------------------------------------------------ + // parseEvent - make sure parseEvent doesn't update the context + // Note: This test is essentially the same as the one from TmfTraceTest + // ------------------------------------------------------------------------ + + public void testParseEvent() throws Exception { + + int NB_READS = 20; + + // On lower bound, returns the first event (ts = 1) + TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0)); + + // Read NB_EVENTS + TmfEvent event = null;; + for (int i = 0; i < NB_READS; i++) { + event = fExperiment.getNextEvent(context); + assertEquals("Event timestamp", i + 1, event.getTimestamp().getValue()); + assertEquals("Event rank", i + 1, context.getRank()); + } + + // Make sure we stay positioned + event = fExperiment.parseEvent(context); + assertEquals("Event timestamp", NB_READS + 1, event.getTimestamp().getValue()); + assertEquals("Event rank", NB_READS, context.getRank()); + } + + // ------------------------------------------------------------------------ + // getNextEvent - updates the context + // ------------------------------------------------------------------------ + + public void testGetNextEvent() throws Exception { + + // On lower bound, returns the first event (ts = 0) + TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0)); + TmfEvent event = fExperiment.getNextEvent(context); + assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); + + for (int i = 2; i < 20; i++) { + event = fExperiment.getNextEvent(context); + assertEquals("Event timestamp", i, event.getTimestamp().getValue()); + } + } + + // ------------------------------------------------------------------------ // processRequest // ------------------------------------------------------------------------ public void testProcessRequestForNbEvents() throws Exception { - final int blockSize = 100; + + final int blockSize = 100; final int nbEvents = 1000; final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>(); @@ -540,7 +582,8 @@ public class TmfExperimentTest extends TestCase { } public void testProcessRequestForNbEvents2() throws Exception { - final int blockSize = 2 * NB_EVENTS; + + final int blockSize = 2 * NB_EVENTS; final int nbEvents = 1000; final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>(); @@ -569,10 +612,11 @@ public class TmfExperimentTest extends TestCase { } public void testProcessRequestForAllEvents() throws Exception { - final int nbEvents = TmfEventRequest.ALL_DATA; + + final int nbEvents = TmfEventRequest.ALL_DATA; final int blockSize = 1; final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>(); - long nbExpectedEvents = fExperiment.getNbEvents(); + long nbExpectedEvents = NB_EVENTS; TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch); final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) { @@ -603,8 +647,9 @@ public class TmfExperimentTest extends TestCase { // ------------------------------------------------------------------------ public void testCancel() throws Exception { - final int nbEvents = NB_EVENTS; - final int blockSize = fDefaultBlockSize; + + final int nbEvents = NB_EVENTS; + final int blockSize = fDefaultBlockSize; final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>(); TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch); @@ -618,6 +663,12 @@ public class TmfExperimentTest extends TestCase { // Cancel request after the first chunk is received cancel(); } + @Override + public void handleCancel() { + if (requestedEvents.size() < blockSize) { + System.out.println("aie"); + } + } }; fExperiment.sendRequest(request); request.waitForCompletion(); @@ -632,7 +683,8 @@ public class TmfExperimentTest extends TestCase { // ------------------------------------------------------------------------ public void testGetRank() throws Exception { - assertEquals("getRank", 0, fExperiment.getRank(new TmfTimestamp())); + + assertEquals("getRank", 0, fExperiment.getRank(new TmfTimestamp())); assertEquals("getRank", 0, fExperiment.getRank(new TmfTimestamp( 1, (byte) -3))); assertEquals("getRank", 10, fExperiment.getRank(new TmfTimestamp( 11, (byte) -3))); assertEquals("getRank", 100, fExperiment.getRank(new TmfTimestamp( 101, (byte) -3))); @@ -646,7 +698,8 @@ public class TmfExperimentTest extends TestCase { // ------------------------------------------------------------------------ public void testGetTimestamp() throws Exception { - assertTrue("getTimestamp", fExperiment.getTimestamp( 0).equals(new TmfTimestamp( 1, (byte) -3))); + + assertTrue("getTimestamp", fExperiment.getTimestamp( 0).equals(new TmfTimestamp( 1, (byte) -3))); assertTrue("getTimestamp", fExperiment.getTimestamp( 10).equals(new TmfTimestamp( 11, (byte) -3))); assertTrue("getTimestamp", fExperiment.getTimestamp( 100).equals(new TmfTimestamp( 101, (byte) -3))); assertTrue("getTimestamp", fExperiment.getTimestamp(1000).equals(new TmfTimestamp(1001, (byte) -3))); |