diff options
author | Francois Chouinard | 2012-05-14 20:28:41 +0000 |
---|---|---|
committer | Francois Chouinard | 2012-05-14 20:28:41 +0000 |
commit | a009a146f8cb3dfcc517ad75e01e9bc497ff9e10 (patch) | |
tree | 2d39e5f6bc0649f7e4968ff958895b59a087e742 /lttng/org.eclipse.linuxtools.tmf.core.tests | |
parent | d1de21ae88fefb31d1edd81e509ca93222b5259f (diff) | |
parent | 26d11523ad5565c89df62a1a35582c8d27e02ff5 (diff) | |
download | org.eclipse.linuxtools-a009a146f8cb3dfcc517ad75e01e9bc497ff9e10.tar.gz org.eclipse.linuxtools-a009a146f8cb3dfcc517ad75e01e9bc497ff9e10.tar.xz org.eclipse.linuxtools-a009a146f8cb3dfcc517ad75e01e9bc497ff9e10.zip |
Merge branch 'master'
Diffstat (limited to 'lttng/org.eclipse.linuxtools.tmf.core.tests')
22 files changed, 626 insertions, 1458 deletions
diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/ctfadaptor/CtfTmfTraceTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/ctfadaptor/CtfTmfTraceTest.java index ceaca0ded2..ae11c98b66 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/ctfadaptor/CtfTmfTraceTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/ctfadaptor/CtfTmfTraceTest.java @@ -767,7 +767,7 @@ public class CtfTmfTraceTest { CtfTmfTrace fixture = initTrace(); ITmfContext context = fixture.seekEvent(0); - CtfTmfEvent result = fixture.readNextEvent(context); + CtfTmfEvent result = fixture.getNext(context); // add additional test code here // An unexpected exception was thrown in user code while executing this test: diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/AllTests.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/AllTests.java index f26e5ddc1e..a0b94e09b3 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/AllTests.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/AllTests.java @@ -19,8 +19,7 @@ import junit.framework.TestSuite; import org.eclipse.linuxtools.internal.tmf.core.TmfCorePlugin; /** - * <b><u>AllTests</u></b> - * <p> + * Test suite for org.eclipse.linuxtools.tmf.core.event */ @SuppressWarnings("nls") public class AllTests { diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventFieldTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventFieldTest.java index dcfc605113..c710ee881c 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventFieldTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventFieldTest.java @@ -19,8 +19,6 @@ import org.eclipse.linuxtools.tmf.core.event.ITmfEventField; import org.eclipse.linuxtools.tmf.core.event.TmfEventField; /** - * <b><u>TmfEventFieldTest</u></b> - * <p> * Test suite for the TmfEventField class. */ @SuppressWarnings("nls") diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTest.java index 3ae06dac22..a87beae139 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTest.java @@ -37,8 +37,6 @@ import org.eclipse.linuxtools.tmf.core.trace.TmfContext; import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub; /** - * <b><u>TmfEventTest</u></b> - * <p> * Test suite for the TmfEvent class. */ @SuppressWarnings("nls") diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTypeManagerTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTypeManagerTest.java index 5216666c7e..4ef3ba445a 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTypeManagerTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTypeManagerTest.java @@ -22,10 +22,7 @@ import org.eclipse.linuxtools.tmf.core.event.TmfEventType; import org.eclipse.linuxtools.tmf.core.event.TmfEventTypeManager; /** - * <b><u>TmfEventTypeManagerTest</u></b> - * <p> * Test suite for the TmfEventTypeManager class. - * <p> */ @SuppressWarnings("nls") public class TmfEventTypeManagerTest extends TestCase { diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTypeTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTypeTest.java index 76238f741c..ddd7889ffc 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTypeTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTypeTest.java @@ -20,8 +20,6 @@ import org.eclipse.linuxtools.tmf.core.event.TmfEventField; import org.eclipse.linuxtools.tmf.core.event.TmfEventType; /** - * <b><u>TmfEventTypeTest</u></b> - * <p> * Test suite for the TmfEventType class. */ @SuppressWarnings("nls") diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfSimpleTimestampTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfSimpleTimestampTest.java index 1bfd3f630f..bb198b5650 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfSimpleTimestampTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfSimpleTimestampTest.java @@ -19,8 +19,6 @@ import org.eclipse.linuxtools.tmf.core.event.TmfSimpleTimestamp; import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp; /** - * <b><u>TmfSimpleTimestampTest</u></b> - * <p> * Test suite for the TmfSimpleTimestampTest class. */ @SuppressWarnings("nls") diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimeRangeTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimeRangeTest.java index 216677e259..a3e3e390cb 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimeRangeTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimeRangeTest.java @@ -20,8 +20,6 @@ import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange; import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp; /** - * <b><u>TmfTimeRangeTest</u></b> - * <p> * Test suite for the TmfTimeRange class. */ @SuppressWarnings("nls") diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimestampTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimestampTest.java index e60b94c3b5..95e1136ee2 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimestampTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimestampTest.java @@ -19,8 +19,6 @@ import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp; import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp; /** - * <b><u>TmfTimestampTest</u></b> - * <p> * Test suite for the TmfTimestamp class. */ @SuppressWarnings("nls") diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/AllTests.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/AllTests.java index 21c10605e2..1192d6a14f 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/AllTests.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/AllTests.java @@ -1,3 +1,16 @@ +/******************************************************************************* + * Copyright (c) 2009, 2012 Ericsson + * + * All rights reserved. This program and the accompanying materials are + * made available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Francois Chouinard - Initial API and implementation + * Francois Chouinard - Adjusted for new Trace Model + *******************************************************************************/ + package org.eclipse.linuxtools.tmf.core.tests.experiment; import junit.framework.Test; @@ -5,13 +18,17 @@ import junit.framework.TestSuite; import org.eclipse.linuxtools.internal.tmf.core.TmfCorePlugin; +/** + * Test suite for org.eclipse.linuxtools.tmf.core.experiment + */ @SuppressWarnings("nls") public class AllTests { public static Test suite() { TestSuite suite = new TestSuite("Test suite for " + TmfCorePlugin.PLUGIN_ID + ".experiment"); //$NON-NLS-1$); //$JUnit-BEGIN$ - suite.addTestSuite(TmfExperimentTest.class); + suite.addTestSuite(TmfExperimentCheckpointIndexTest.class); + suite.addTestSuite(TmfExperimentTest.class); suite.addTestSuite(TmfMultiTraceExperimentTest.class); //$JUnit-END$ return suite; diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/TmfExperimentCheckpointIndexTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/TmfExperimentCheckpointIndexTest.java new file mode 100644 index 0000000000..d847c9a36f --- /dev/null +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/TmfExperimentCheckpointIndexTest.java @@ -0,0 +1,168 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson + * + * All rights reserved. This program and the accompanying materials are + * made available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Francois Chouinard - Initial API and implementation + *******************************************************************************/ + +package org.eclipse.linuxtools.tmf.core.tests.experiment; + +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.List; + +import junit.framework.TestCase; + +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.Path; +import org.eclipse.linuxtools.tmf.core.event.ITmfEvent; +import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp; +import org.eclipse.linuxtools.tmf.core.exceptions.TmfTraceException; +import org.eclipse.linuxtools.tmf.core.experiment.TmfExperiment; +import org.eclipse.linuxtools.tmf.core.experiment.TmfExperimentContext; +import org.eclipse.linuxtools.tmf.core.experiment.TmfExperimentLocation; +import org.eclipse.linuxtools.tmf.core.experiment.TmfLocationArray; +import org.eclipse.linuxtools.tmf.core.tests.TmfCoreTestPlugin; +import org.eclipse.linuxtools.tmf.core.trace.ITmfContext; +import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace; +import org.eclipse.linuxtools.tmf.core.trace.TmfCheckpoint; +import org.eclipse.linuxtools.tmf.core.trace.TmfCheckpointIndexer; +import org.eclipse.linuxtools.tmf.core.trace.TmfContext; +import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub; + +/** + * Test suite for the TmfCheckpointIndexTest class. + */ +@SuppressWarnings("nls") +public class TmfExperimentCheckpointIndexTest extends TestCase { + + // ------------------------------------------------------------------------ + // Attributes + // ------------------------------------------------------------------------ + + private static final String DIRECTORY = "testfiles"; + private static final String TEST_STREAM1 = "O-Test-10K"; + private static final String TEST_STREAM2 = "E-Test-10K"; + private static final String EXPERIMENT = "MyExperiment"; + private static int NB_EVENTS = 20000; + private static int BLOCK_SIZE = 1000; + + private static ITmfTrace<?>[] fTestTraces; + private static TestExperiment fExperiment; + + // ------------------------------------------------------------------------ + // Helper classes + // ------------------------------------------------------------------------ + + private class TestIndexer extends TmfCheckpointIndexer<ITmfTrace<ITmfEvent>> { + @SuppressWarnings({ "unchecked", "rawtypes" }) + public TestIndexer(TestExperiment testExperiment) { + super((ITmfTrace) testExperiment, BLOCK_SIZE); + } + public List<TmfCheckpoint> getCheckpoints() { + return getTraceIndex(); + } + } + + private class TestExperiment extends TmfExperiment<ITmfEvent> { + @SuppressWarnings("unchecked") + public TestExperiment() { + super(ITmfEvent.class, EXPERIMENT, (ITmfTrace<ITmfEvent>[]) fTestTraces, TmfTimestamp.ZERO, BLOCK_SIZE, false); + setIndexer(new TestIndexer(this)); + getIndexer().buildIndex(true); + } + @Override + public TestIndexer getIndexer() { + return (TestIndexer) super.getIndexer(); + } + } + + // ------------------------------------------------------------------------ + // Housekeeping + // ------------------------------------------------------------------------ + + public TmfExperimentCheckpointIndexTest(final String name) throws Exception { + super(name); + } + + @Override + protected void setUp() throws Exception { + super.setUp(); + setupTrace(DIRECTORY + File.separator + TEST_STREAM1, DIRECTORY + File.separator + TEST_STREAM2); + if (fExperiment == null) { + fExperiment = new TestExperiment(); + } + } + + @Override + protected void tearDown() throws Exception { + super.tearDown(); + fExperiment.dispose(); + fExperiment = null; + } + + private static ITmfTrace<?>[] setupTrace(final String path1, final String path2) { + if (fTestTraces == null) { + fTestTraces = new ITmfTrace[2]; + try { + URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path1), null); + File test = new File(FileLocator.toFileURL(location).toURI()); + final TmfTraceStub trace1 = new TmfTraceStub(test.getPath(), 0, true); + fTestTraces[0] = trace1; + location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path2), null); + test = new File(FileLocator.toFileURL(location).toURI()); + final TmfTraceStub trace2 = new TmfTraceStub(test.getPath(), 0, true); + fTestTraces[1] = trace2; + } catch (final TmfTraceException e) { + e.printStackTrace(); + } catch (final URISyntaxException e) { + e.printStackTrace(); + } catch (final IOException e) { + e.printStackTrace(); + } + } + return fTestTraces; + } + + // ------------------------------------------------------------------------ + // Verify checkpoints + // ------------------------------------------------------------------------ + + public void testTmfTraceIndexing() throws Exception { + assertEquals("getCacheSize", BLOCK_SIZE, fExperiment.getCacheSize()); + assertEquals("getTraceSize", NB_EVENTS, fExperiment.getNbEvents()); + assertEquals("getRange-start", 1, fExperiment.getTimeRange().getStartTime().getValue()); + assertEquals("getRange-end", NB_EVENTS, fExperiment.getTimeRange().getEndTime().getValue()); + assertEquals("getStartTime", 1, fExperiment.getStartTime().getValue()); + assertEquals("getEndTime", NB_EVENTS, fExperiment.getEndTime().getValue()); + + List<TmfCheckpoint> checkpoints = fExperiment.getIndexer().getCheckpoints(); + int pageSize = fExperiment.getCacheSize(); + assertTrue("Checkpoints exist", checkpoints != null); + assertEquals("Checkpoints size", NB_EVENTS / BLOCK_SIZE, checkpoints.size()); + + // Validate that each checkpoint points to the right event + for (int i = 0; i < checkpoints.size(); i++) { + TmfCheckpoint checkpoint = checkpoints.get(i); + TmfExperimentLocation expLocation = (TmfExperimentLocation) checkpoint.getLocation(); + TmfLocationArray locations = expLocation.getLocation(); + ITmfContext[] trcContexts = new ITmfContext[2]; + trcContexts[0] = new TmfContext(locations.getLocations()[0], (i * pageSize) / 2); + trcContexts[1] = new TmfContext(locations.getLocations()[1], (i * pageSize) / 2); + TmfExperimentContext expContext = new TmfExperimentContext(trcContexts); + expContext.getEvents()[0] = fTestTraces[0].getNext(fTestTraces[0].seekEvent((i * pageSize) / 2)); + expContext.getEvents()[1] = fTestTraces[1].getNext(fTestTraces[1].seekEvent((i * pageSize) / 2)); + ITmfEvent event = fExperiment.parseEvent(expContext); + assertTrue(expContext.getRank() == i * pageSize); + assertTrue((checkpoint.getTimestamp().compareTo(event.getTimestamp(), false) == 0)); + } + } + +}
\ No newline at end of file diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/TmfExperimentTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/TmfExperimentTest.java index c6d259726f..9a693b99ef 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/TmfExperimentTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/TmfExperimentTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2010 Ericsson + * Copyright (c) 2009, 2010, 2012 Ericsson * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -8,6 +8,7 @@ * * Contributors: * Francois Chouinard - Initial API and implementation + * Francois Chouinard - Adjusted for new Trace Model *******************************************************************************/ package org.eclipse.linuxtools.tmf.core.tests.experiment; @@ -28,28 +29,28 @@ import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange; import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp; import org.eclipse.linuxtools.tmf.core.exceptions.TmfTraceException; import org.eclipse.linuxtools.tmf.core.experiment.TmfExperiment; -import org.eclipse.linuxtools.tmf.core.experiment.TmfExperimentContext; import org.eclipse.linuxtools.tmf.core.request.TmfEventRequest; import org.eclipse.linuxtools.tmf.core.tests.TmfCoreTestPlugin; import org.eclipse.linuxtools.tmf.core.trace.ITmfContext; +import org.eclipse.linuxtools.tmf.core.trace.ITmfLocation; import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace; -import org.eclipse.linuxtools.tmf.core.trace.TmfCheckpoint; -import org.eclipse.linuxtools.tmf.core.trace.TmfContext; import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub; /** - * <b><u>TmfExperimentTest</u></b> - * <p> - * TODO: Implement me. Please. + * Test suite for the TmfExperiment class (single trace). */ @SuppressWarnings("nls") public class TmfExperimentTest extends TestCase { + // ------------------------------------------------------------------------ + // Attributes + // ------------------------------------------------------------------------ + private static final String DIRECTORY = "testfiles"; private static final String TEST_STREAM = "A-Test-10K"; private static final String EXPERIMENT = "MyExperiment"; private static int NB_EVENTS = 10000; - private static int fDefaultBlockSize = 1000; + private static int BLOCK_SIZE = 1000; private static ITmfTrace<?>[] fTraces; private static TmfExperiment<TmfEvent> fExperiment; @@ -109,9 +110,11 @@ 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()); + final long nbExperimentEvents = fExperiment.getNbEvents(); + assertEquals("GetNbEvents", NB_EVENTS, nbExperimentEvents); + final long nbTraceEvents = fExperiment.getTraces()[0].getNbEvents(); assertEquals("GetNbEvents", NB_EVENTS, nbTraceEvents); @@ -121,437 +124,284 @@ public class TmfExperimentTest extends TestCase { } // ------------------------------------------------------------------------ - // Verify checkpoints + // seekEvent on rank // ------------------------------------------------------------------------ - public void testValidateCheckpoints() throws Exception { - - final Vector<TmfCheckpoint> checkpoints = fExperiment.getCheckpoints(); - final 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++) { - final TmfCheckpoint checkpoint = checkpoints.get(i); - final TmfExperimentContext context = fExperiment.seekEvent(checkpoint.getLocation()); - final ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event rank", i * pageSize, context.getRank()); - assertTrue("Timestamp", (checkpoint.getTimestamp().compareTo(event.getTimestamp(), false) == 0)); - } - } - - // ------------------------------------------------------------------------ - // seekLocation - // ------------------------------------------------------------------------ + public void testSeekRankOnCacheBoundary() throws Exception { - public void testSeekLocationOnCacheBoundary() throws Exception { + long cacheSize = fExperiment.getCacheSize(); - // Position trace at event rank 0 - TmfContext context = fExperiment.seekEvent(0); - assertEquals("Event rank", 0, context.getRank()); + // On lower bound, returns the first event (TS = 1) + ITmfContext context = fExperiment.seekEvent(0); + assertEquals("Context rank", 0, context.getRank()); - ITmfEvent event = fExperiment.parseEvent(context); + ITmfEvent event = fExperiment.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); + assertEquals("Context rank", 1, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 1, context.getRank()); - - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); - assertEquals("Event rank", 2, context.getRank()); + // Position trace at event rank [cacheSize] + context = fExperiment.seekEvent(cacheSize); + assertEquals("Context rank", cacheSize, context.getRank()); - // Position trace at event rank 1000 - TmfContext tmpContext = fExperiment.seekEvent(new TmfTimestamp(1001, SCALE, 0)); - context = fExperiment.seekEvent(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.getNext(context); + assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue()); + assertEquals("Context rank", cacheSize + 1, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); - - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1002, context.getRank()); + // Position trace at event rank [4 * cacheSize] + context = fExperiment.seekEvent(4 * cacheSize); + assertEquals("Context rank", 4 * cacheSize, context.getRank()); - // Position trace at event rank 4000 - tmpContext = fExperiment.seekEvent(new TmfTimestamp(4001, SCALE, 0)); - context = fExperiment.seekEvent(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.readNextEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4001, context.getRank()); - - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4002, event.getTimestamp().getValue()); - assertEquals("Event rank", 4002, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 4 * cacheSize + 1, event.getTimestamp().getValue()); + assertEquals("Context rank", 4 * cacheSize + 1, context.getRank()); } - public void testSeekLocationNotOnCacheBoundary() throws Exception { + public void testSeekRankNotOnCacheBoundary() throws Exception { - // Position trace at event rank 9 - TmfContext tmpContext = fExperiment.seekEvent(new TmfTimestamp(10, SCALE, 0)); - TmfContext context = fExperiment.seekEvent(tmpContext.getLocation()); - assertEquals("Event rank", 9, context.getRank()); + long cacheSize = fExperiment.getCacheSize(); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 9, context.getRank()); + // Position trace at event rank 9 + ITmfContext context = fExperiment.seekEvent(9); + assertEquals("Context rank", 9, context.getRank()); - event = fExperiment.readNextEvent(context); + ITmfEvent event = fExperiment.getNext(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 10, context.getRank()); - - // Position trace at event rank 999 - tmpContext = fExperiment.seekEvent(new TmfTimestamp(1000, SCALE, 0)); - context = fExperiment.seekEvent(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()); + assertEquals("Context rank", 10, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); - assertEquals("Event rank", 1000, context.getRank()); + // Position trace at event rank [cacheSize - 1] + context = fExperiment.seekEvent(cacheSize - 1); + assertEquals("Context rank", cacheSize - 1, context.getRank()); - // Position trace at event rank 1001 - tmpContext = fExperiment.seekEvent(new TmfTimestamp(1002, SCALE, 0)); - context = fExperiment.seekEvent(tmpContext.getLocation()); - assertEquals("Event rank", 1001, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize, event.getTimestamp().getValue()); + assertEquals("Context rank", cacheSize, context.getRank()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + // Position trace at event rank [cacheSize + 1] + context = fExperiment.seekEvent(cacheSize + 1); + assertEquals("Context rank", cacheSize + 1, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1002, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize + 2, event.getTimestamp().getValue()); + assertEquals("Context rank", cacheSize + 2, context.getRank()); // Position trace at event rank 4500 - tmpContext = fExperiment.seekEvent(new TmfTimestamp(4501, SCALE, 0)); - context = fExperiment.seekEvent(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()); + context = fExperiment.seekEvent(4500); + assertEquals("Context rank", 4500, context.getRank()); - event = fExperiment.readNextEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4501, context.getRank()); + assertEquals("Context rank", 4501, context.getRank()); } - public void testSeekLocationOutOfScope() throws Exception { + public void testSeekRankOutOfScope() throws Exception { // Position trace at beginning - TmfContext tmpContext = fExperiment.seekEvent(0); - final TmfContext context = fExperiment.seekEvent(tmpContext.getLocation()); + ITmfContext context = fExperiment.seekEvent(-1); assertEquals("Event rank", 0, context.getRank()); - ITmfEvent event = fExperiment.parseEvent(context); + ITmfEvent event = fExperiment.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); - - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 1, context.getRank()); + assertEquals("Context rank", 1, context.getRank()); // Position trace at event passed the end - tmpContext = fExperiment.seekEvent(new TmfTimestamp(NB_EVENTS + 1, SCALE, 0)); - assertEquals("Event location", null, tmpContext.getLocation()); - assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, tmpContext.getRank()); + context = fExperiment.seekEvent(NB_EVENTS); + assertEquals("Context rank", NB_EVENTS, context.getRank()); + + event = fExperiment.getNext(context); + assertNull("Event", event); + assertEquals("Context rank", NB_EVENTS, context.getRank()); } // ------------------------------------------------------------------------ // seekEvent on timestamp // ------------------------------------------------------------------------ - public void testSeekEventOnTimestampOnCacheBoundary() throws Exception { + public void testSeekTimestampOnCacheBoundary() throws Exception { - // Position trace at event rank 0 - TmfContext context = fExperiment.seekEvent(new TmfTimestamp(1, SCALE, 0)); - assertEquals("Event rank", 0, context.getRank()); + long cacheSize = fExperiment.getCacheSize(); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); + // Position trace at event rank 0 + ITmfContext context = fExperiment.seekEvent(new TmfTimestamp(1, SCALE, 0)); + assertEquals("Context rank", 0, context.getRank()); - event = fExperiment.readNextEvent(context); + ITmfEvent event = fExperiment.getNext(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); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1000, context.getRank()); + assertEquals("Context rank", 1, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + // Position trace at event rank [cacheSize] + context = fExperiment.seekEvent(new TmfTimestamp(cacheSize + 1, SCALE, 0)); + assertEquals("Event rank", cacheSize, context.getRank()); - // Position trace at event rank 4000 - context = fExperiment.seekEvent(new TmfTimestamp(4001, SCALE, 0)); - assertEquals("Event rank", 4000, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue()); + assertEquals("Context rank", cacheSize + 1, context.getRank()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4000, context.getRank()); + // Position trace at event rank [4 * cacheSize] + context = fExperiment.seekEvent(new TmfTimestamp(4 * cacheSize + 1, SCALE, 0)); + assertEquals("Context rank", 4 * cacheSize, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4001, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 4 * cacheSize + 1, event.getTimestamp().getValue()); + assertEquals("Context rank", 4 * cacheSize + 1, context.getRank()); } - public void testSeekEventOnTimestampNotOnCacheBoundary() throws Exception { + public void testSeekTimestampNotOnCacheBoundary() throws Exception { - // Position trace at event rank 1 - TmfContext context = fExperiment.seekEvent(new TmfTimestamp(2, SCALE, 0)); - assertEquals("Event rank", 1, context.getRank()); - - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); - assertEquals("Event rank", 1, context.getRank()); + // Position trace at event rank 1 (TS = 2) + ITmfContext context = fExperiment.seekEvent(new TmfTimestamp(2, SCALE, 0)); + assertEquals("Context rank", 1, context.getRank()); - event = fExperiment.readNextEvent(context); + ITmfEvent event = fExperiment.getNext(context); assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); - assertEquals("Event rank", 2, context.getRank()); + assertEquals("Context rank", 2, context.getRank()); - // Position trace at event rank 9 + // Position trace at event rank 9 (TS = 10) context = fExperiment.seekEvent(new TmfTimestamp(10, SCALE, 0)); - assertEquals("Event rank", 9, context.getRank()); - - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 9, context.getRank()); + assertEquals("Context rank", 9, context.getRank()); - event = fExperiment.readNextEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 10, context.getRank()); + assertEquals("Context rank", 10, context.getRank()); - // Position trace at event rank 999 + // Position trace at event rank 999 (TS = 1000) context = fExperiment.seekEvent(new TmfTimestamp(1000, SCALE, 0)); - assertEquals("Event rank", 999, context.getRank()); + assertEquals("Context rank", 999, context.getRank()); - event = fExperiment.parseEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); - assertEquals("Event rank", 999, context.getRank()); + assertEquals("Context rank", 1000, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); - assertEquals("Event rank", 1000, context.getRank()); - - // Position trace at event rank 1001 + // Position trace at event rank 1001 (TS = 1002) context = fExperiment.seekEvent(new TmfTimestamp(1002, SCALE, 0)); - assertEquals("Event rank", 1001, context.getRank()); - - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + assertEquals("Context rank", 1001, context.getRank()); - event = fExperiment.readNextEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1002, context.getRank()); + assertEquals("Context rank", 1002, context.getRank()); - // Position trace at event rank 4500 + // Position trace at event rank 4500 (TS = 4501) context = fExperiment.seekEvent(new TmfTimestamp(4501, SCALE, 0)); - assertEquals("Event rank", 4500, context.getRank()); - - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4500, context.getRank()); + assertEquals("Context rank", 4500, context.getRank()); - event = fExperiment.readNextEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4501, context.getRank()); + assertEquals("Context rank", 4501, context.getRank()); } - public void testSeekEventOnTimestampoutOfScope() throws Exception { + public void testSeekTimestampOutOfScope() throws Exception { // Position trace at beginning - TmfContext context = fExperiment.seekEvent(new TmfTimestamp(-1, SCALE, 0)); - assertEquals("Event rank", 0, context.getRank()); - - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); + ITmfContext context = fExperiment.seekEvent(new TmfTimestamp(-1, SCALE, 0)); assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.readNextEvent(context); + ITmfEvent event = fExperiment.getNext(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 location", null, context.getLocation()); + event = fExperiment.getNext(context); + assertNull("Event location", event); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); } // ------------------------------------------------------------------------ - // seekEvent on rank + // seekEvent by location (context rank is undefined) // ------------------------------------------------------------------------ - public void testSeekOnRankOnCacheBoundary() throws Exception { + public void testSeekLocationOnCacheBoundary() throws Exception { + + long cacheSize = fExperiment.getCacheSize(); - // On lower bound, returns the first event (ts = 1) - TmfContext context = fExperiment.seekEvent(0); - assertEquals("Event rank", 0, context.getRank()); + // Position trace at event rank 0 + ITmfContext tmpContext = fExperiment.seekEvent(0); + ITmfContext context = fExperiment.seekEvent(tmpContext.getLocation()); - ITmfEvent event = fExperiment.parseEvent(context); + ITmfEvent event = fExperiment.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 1, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); - // Position trace at event rank 1000 - context = fExperiment.seekEvent(1000); - assertEquals("Event rank", 1000, context.getRank()); + // Position trace at event rank 'cacheSize' + tmpContext = fExperiment.seekEvent(cacheSize); + context = fExperiment.seekEvent(tmpContext.getLocation()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1000, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize + 2, event.getTimestamp().getValue()); - // Position trace at event rank 4000 - context = fExperiment.seekEvent(4000); - assertEquals("Event rank", 4000, context.getRank()); + // Position trace at event rank 4 * 'cacheSize' + tmpContext = fExperiment.seekEvent(4 * cacheSize); + context = fExperiment.seekEvent(tmpContext.getLocation()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4000, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 4 * cacheSize + 1, event.getTimestamp().getValue()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4001, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 4 * cacheSize + 2, event.getTimestamp().getValue()); } - public void testSeekOnRankNotOnCacheBoundary() throws Exception { - - // Position trace at event rank 9 - TmfContext context = fExperiment.seekEvent(9); - assertEquals("Event rank", 9, context.getRank()); - - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 9, context.getRank()); + public void testSeekLocationNotOnCacheBoundary() throws Exception { - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 10, context.getRank()); + long cacheSize = fExperiment.getCacheSize(); - // Position trace at event rank 999 - context = fExperiment.seekEvent(999); - assertEquals("Event rank", 999, context.getRank()); + // Position trace at event 'cacheSize' - 1 + ITmfContext tmpContext = fExperiment.seekEvent(cacheSize - 1); + ITmfContext context = fExperiment.seekEvent(tmpContext.getLocation()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); - assertEquals("Event rank", 999, context.getRank()); + ITmfEvent event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize, event.getTimestamp().getValue()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); - assertEquals("Event rank", 1000, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue()); - // Position trace at event rank 1001 - context = fExperiment.seekEvent(1001); - assertEquals("Event rank", 1001, context.getRank()); + // Position trace at event rank 2 * 'cacheSize' - 1 + tmpContext = fExperiment.seekEvent(2 * cacheSize - 1); + context = fExperiment.seekEvent(tmpContext.getLocation()); + context = fExperiment.seekEvent(2 * cacheSize - 1); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 2 * cacheSize, event.getTimestamp().getValue()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1002, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 2 * cacheSize + 1, event.getTimestamp().getValue()); // Position trace at event rank 4500 - context = fExperiment.seekEvent(4500); - assertEquals("Event rank", 4500, context.getRank()); + tmpContext = fExperiment.seekEvent(4500); + context = fExperiment.seekEvent(tmpContext.getLocation()); - event = fExperiment.parseEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4500, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4501, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 4502, event.getTimestamp().getValue()); } - public void testSeekEventOnRankOutOfScope() throws Exception { + public void testSeekLocationOutOfScope() throws Exception { // Position trace at beginning - TmfContext context = fExperiment.seekEvent(-1); - assertEquals("Event rank", 0, context.getRank()); - - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); + ITmfContext context = fExperiment.seekEvent((ITmfLocation<?>) null); - event = fExperiment.readNextEvent(context); + ITmfEvent event = fExperiment.getNext(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 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 + // readtNextEvent - updates the context // ------------------------------------------------------------------------ - public void testParseEvent() throws Exception { - - final int NB_READS = 20; - - // On lower bound, returns the first event (ts = 1) - final TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0)); - - // Read NB_EVENTS - ITmfEvent event = null;; - for (int i = 0; i < NB_READS; i++) { - event = fExperiment.readNextEvent(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 { + public void testReadNextEvent() throws Exception { // On lower bound, returns the first event (ts = 0) - final TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0)); - ITmfEvent event = fExperiment.readNextEvent(context); + final ITmfContext context = fExperiment.seekEvent(0); + ITmfEvent event = fExperiment.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); for (int i = 2; i < 20; i++) { - event = fExperiment.readNextEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", i, event.getTimestamp().getValue()); } } @@ -652,7 +502,7 @@ public class TmfExperimentTest extends TestCase { public void testCancel() throws Exception { final int nbEvents = NB_EVENTS; - final int blockSize = fDefaultBlockSize; + final int blockSize = BLOCK_SIZE; final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>(); final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH); @@ -682,21 +532,6 @@ public class TmfExperimentTest extends TestCase { } // ------------------------------------------------------------------------ - // getRank - // ------------------------------------------------------------------------ - - // public void testGetRank() throws Exception { - // - // 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))); - // assertEquals("getRank", 1000, fExperiment.getRank(new TmfTimestamp(1001, (byte) -3))); - // assertEquals("getRank", 2000, fExperiment.getRank(new TmfTimestamp(2001, (byte) -3))); - // assertEquals("getRank", 2500, fExperiment.getRank(new TmfTimestamp(2501, (byte) -3))); - // } - - // ------------------------------------------------------------------------ // getTimestamp // ------------------------------------------------------------------------ diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/TmfMultiTraceExperimentTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/TmfMultiTraceExperimentTest.java index bd27477611..0787c42222 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/TmfMultiTraceExperimentTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/experiment/TmfMultiTraceExperimentTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2010 Ericsson + * Copyright (c) 2009, 2010, 2012 Ericsson * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -8,6 +8,7 @@ * * Contributors: * Francois Chouinard - Initial API and implementation + * Francois Chouinard - Adjusted for new Trace Model *******************************************************************************/ package org.eclipse.linuxtools.tmf.core.tests.experiment; @@ -28,23 +29,23 @@ import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange; import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp; import org.eclipse.linuxtools.tmf.core.exceptions.TmfTraceException; import org.eclipse.linuxtools.tmf.core.experiment.TmfExperiment; -import org.eclipse.linuxtools.tmf.core.experiment.TmfExperimentContext; import org.eclipse.linuxtools.tmf.core.request.TmfEventRequest; import org.eclipse.linuxtools.tmf.core.tests.TmfCoreTestPlugin; import org.eclipse.linuxtools.tmf.core.trace.ITmfContext; +import org.eclipse.linuxtools.tmf.core.trace.ITmfLocation; import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace; -import org.eclipse.linuxtools.tmf.core.trace.TmfCheckpoint; -import org.eclipse.linuxtools.tmf.core.trace.TmfContext; import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub; /** - * <b><u>TmfExperimentTest</u></b> - * <p> - * TODO: Implement me. Please. + * Test suite for the TmfExperiment class (multiple traces). */ @SuppressWarnings("nls") public class TmfMultiTraceExperimentTest extends TestCase { + // ------------------------------------------------------------------------ + // Attributes + // ------------------------------------------------------------------------ + private static final String DIRECTORY = "testfiles"; private static final String TEST_STREAM1 = "O-Test-10K"; private static final String TEST_STREAM2 = "E-Test-10K"; @@ -84,24 +85,18 @@ public class TmfMultiTraceExperimentTest extends TestCase { return fTraces; } - @SuppressWarnings("unchecked") - private synchronized static void setupExperiment() { - synchronized (TmfMultiTraceExperimentTest.class) { - if (fExperiment == null) { - fExperiment = new TmfExperiment<TmfEvent>(TmfEvent.class, EXPERIMENT, (ITmfTrace<TmfEvent>[]) fTraces, TmfTimestamp.ZERO, BLOCK_SIZE, true); - } - } - } - public TmfMultiTraceExperimentTest(final String name) throws Exception { super(name); } + @SuppressWarnings("unchecked") @Override protected void setUp() throws Exception { super.setUp(); setupTrace(DIRECTORY + File.separator + TEST_STREAM1, DIRECTORY + File.separator + TEST_STREAM2); - setupExperiment(); + if (fExperiment == null) { + fExperiment = new TmfExperiment<TmfEvent>(TmfEvent.class, EXPERIMENT, (ITmfTrace<TmfEvent>[]) fTraces, TmfTimestamp.ZERO, BLOCK_SIZE, true); + } } @Override @@ -116,7 +111,6 @@ public class TmfMultiTraceExperimentTest extends TestCase { public void testBasicTmfExperimentConstructor() { assertEquals("GetId", EXPERIMENT, fExperiment.getName()); - assertEquals("GetEpoch", TmfTimestamp.ZERO, fExperiment.getEpoch()); assertEquals("GetNbEvents", NB_EVENTS, fExperiment.getNbEvents()); final TmfTimeRange timeRange = fExperiment.getTimeRange(); @@ -125,437 +119,284 @@ public class TmfMultiTraceExperimentTest extends TestCase { } // ------------------------------------------------------------------------ - // Verify checkpoints - // ------------------------------------------------------------------------ - - public void testValidateCheckpoints() throws Exception { - - final Vector<TmfCheckpoint> checkpoints = fExperiment.getCheckpoints(); - final 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++) { - final TmfCheckpoint checkpoint = checkpoints.get(i); - final TmfExperimentContext context = fExperiment.seekEvent(checkpoint.getLocation()); - final ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event rank", context.getRank(), i * pageSize); - assertTrue("Timestamp", (checkpoint.getTimestamp().compareTo(event.getTimestamp(), false) == 0)); - } - } - - // ------------------------------------------------------------------------ - // seekLocation + // seekEvent on rank // ------------------------------------------------------------------------ - public void testSeekLocationOnCacheBoundary() throws Exception { + public void testSeekRankOnCacheBoundary() throws Exception { - // Position trace at event rank 0 - TmfContext context = fExperiment.seekEvent(0); - assertEquals("Event rank", 0, context.getRank()); + long cacheSize = fExperiment.getCacheSize(); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); + // On lower bound, returns the first event (TS = 1) + ITmfContext context = fExperiment.seekEvent(0); + assertEquals("Context rank", 0, context.getRank()); - event = fExperiment.readNextEvent(context); + ITmfEvent event = fExperiment.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 1, context.getRank()); + assertEquals("Context rank", 1, context.getRank()); - event = fExperiment.readNextEvent(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.seekEvent(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()); + // Position trace at event rank [cacheSize] + context = fExperiment.seekEvent(cacheSize); + assertEquals("Context rank", cacheSize, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); - - event = fExperiment.readNextEvent(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.seekEvent(tmpContext.getLocation()); - assertEquals("Event rank", 4000, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue()); + assertEquals("Context rank", cacheSize + 1, context.getRank()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4000, context.getRank()); + // Position trace at event rank [4 * cacheSize] + context = fExperiment.seekEvent(4 * cacheSize); + assertEquals("Context rank", 4 * cacheSize, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4001, context.getRank()); - - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4002, event.getTimestamp().getValue()); - assertEquals("Event rank", 4002, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 4 * cacheSize + 1, event.getTimestamp().getValue()); + assertEquals("Context rank", 4 * cacheSize + 1, context.getRank()); } - public void testSeekLocationNotOnCacheBoundary() throws Exception { + public void testSeekRankNotOnCacheBoundary() throws Exception { - // Position trace at event rank 9 - TmfContext tmpContext = fExperiment.seekEvent(new TmfTimestamp(10, SCALE, 0)); - TmfContext context = fExperiment.seekEvent(tmpContext.getLocation()); - assertEquals("Event rank", 9, context.getRank()); + long cacheSize = fExperiment.getCacheSize(); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 9, context.getRank()); + // Position trace at event rank 9 + ITmfContext context = fExperiment.seekEvent(9); + assertEquals("Context rank", 9, context.getRank()); - event = fExperiment.readNextEvent(context); + ITmfEvent event = fExperiment.getNext(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 10, context.getRank()); - - // Position trace at event rank 999 - tmpContext = fExperiment.seekEvent(new TmfTimestamp(1000, SCALE, 0)); - context = fExperiment.seekEvent(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()); + assertEquals("Context rank", 10, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); - assertEquals("Event rank", 1000, context.getRank()); + // Position trace at event rank [cacheSize - 1] + context = fExperiment.seekEvent(cacheSize - 1); + assertEquals("Context rank", cacheSize - 1, context.getRank()); - // Position trace at event rank 1001 - tmpContext = fExperiment.seekEvent(new TmfTimestamp(1002, SCALE, 0)); - context = fExperiment.seekEvent(tmpContext.getLocation()); - assertEquals("Event rank", 1001, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize, event.getTimestamp().getValue()); + assertEquals("Context rank", cacheSize, context.getRank()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + // Position trace at event rank [cacheSize + 1] + context = fExperiment.seekEvent(cacheSize + 1); + assertEquals("Context rank", cacheSize + 1, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1002, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize + 2, event.getTimestamp().getValue()); + assertEquals("Context rank", cacheSize + 2, context.getRank()); // Position trace at event rank 4500 - tmpContext = fExperiment.seekEvent(new TmfTimestamp(4501, SCALE, 0)); - context = fExperiment.seekEvent(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()); + context = fExperiment.seekEvent(4500); + assertEquals("Context rank", 4500, context.getRank()); - event = fExperiment.readNextEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4501, context.getRank()); + assertEquals("Context rank", 4501, context.getRank()); } - public void testSeekLocationOutOfScope() throws Exception { + public void testSeekRankOutOfScope() throws Exception { // Position trace at beginning - TmfContext tmpContext = fExperiment.seekEvent(0); - final TmfContext context = fExperiment.seekEvent(tmpContext.getLocation()); - assertEquals("Event rank", 0, context.getRank()); - - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); + ITmfContext context = fExperiment.seekEvent(-1); assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.readNextEvent(context); + ITmfEvent event = fExperiment.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 1, context.getRank()); + assertEquals("Context rank", 1, context.getRank()); // Position trace at event passed the end - tmpContext = fExperiment.seekEvent(new TmfTimestamp(NB_EVENTS + 1, SCALE, 0)); - assertEquals("Event location", null, tmpContext.getLocation()); - assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, tmpContext.getRank()); + context = fExperiment.seekEvent(NB_EVENTS); + assertEquals("Context rank", NB_EVENTS, context.getRank()); + + event = fExperiment.getNext(context); + assertNull("Event", event); + assertEquals("Context rank", NB_EVENTS, context.getRank()); } // ------------------------------------------------------------------------ // seekEvent on timestamp // ------------------------------------------------------------------------ - public void testSeekEventOnTimestampOnCacheBoundary() throws Exception { + public void testSeekTimestampOnCacheBoundary() throws Exception { - // Position trace at event rank 0 - TmfContext context = fExperiment.seekEvent(new TmfTimestamp(1, SCALE, 0)); - assertEquals("Event rank", 0, context.getRank()); + long cacheSize = fExperiment.getCacheSize(); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); + // Position trace at event rank 0 + ITmfContext context = fExperiment.seekEvent(new TmfTimestamp(1, SCALE, 0)); + assertEquals("Context rank", 0, context.getRank()); - event = fExperiment.readNextEvent(context); + ITmfEvent event = fExperiment.getNext(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); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1000, context.getRank()); + assertEquals("Context rank", 1, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + // Position trace at event rank [cacheSize] + context = fExperiment.seekEvent(new TmfTimestamp(cacheSize + 1, SCALE, 0)); + assertEquals("Event rank", cacheSize, context.getRank()); - // Position trace at event rank 4000 - context = fExperiment.seekEvent(new TmfTimestamp(4001, SCALE, 0)); - assertEquals("Event rank", 4000, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue()); + assertEquals("Context rank", cacheSize + 1, context.getRank()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4000, context.getRank()); + // Position trace at event rank [4 * cacheSize] + context = fExperiment.seekEvent(new TmfTimestamp(4 * cacheSize + 1, SCALE, 0)); + assertEquals("Context rank", 4 * cacheSize, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4001, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 4 * cacheSize + 1, event.getTimestamp().getValue()); + assertEquals("Context rank", 4 * cacheSize + 1, context.getRank()); } - public void testSeekEventOnTimestampNotOnCacheBoundary() throws Exception { + public void testSeekTimestampNotOnCacheBoundary() throws Exception { - // Position trace at event rank 1 - TmfContext context = fExperiment.seekEvent(new TmfTimestamp(2, SCALE, 0)); - assertEquals("Event rank", 1, context.getRank()); + // Position trace at event rank 1 (TS = 2) + ITmfContext context = fExperiment.seekEvent(new TmfTimestamp(2, SCALE, 0)); + assertEquals("Context rank", 1, context.getRank()); - ITmfEvent event = fExperiment.parseEvent(context); + ITmfEvent event = fExperiment.getNext(context); assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); - assertEquals("Event rank", 1, context.getRank()); + assertEquals("Context rank", 2, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); - assertEquals("Event rank", 2, context.getRank()); - - // Position trace at event rank 9 + // Position trace at event rank 9 (TS = 10) context = fExperiment.seekEvent(new TmfTimestamp(10, SCALE, 0)); - assertEquals("Event rank", 9, context.getRank()); + assertEquals("Context rank", 9, context.getRank()); - event = fExperiment.parseEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 9, context.getRank()); + assertEquals("Context rank", 10, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 10, context.getRank()); - - // Position trace at event rank 999 + // Position trace at event rank 999 (TS = 1000) context = fExperiment.seekEvent(new TmfTimestamp(1000, SCALE, 0)); - assertEquals("Event rank", 999, context.getRank()); - - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); - assertEquals("Event rank", 999, context.getRank()); + assertEquals("Context rank", 999, context.getRank()); - event = fExperiment.readNextEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); - assertEquals("Event rank", 1000, context.getRank()); + assertEquals("Context rank", 1000, context.getRank()); - // Position trace at event rank 1001 + // Position trace at event rank 1001 (TS = 1002) context = fExperiment.seekEvent(new TmfTimestamp(1002, SCALE, 0)); - assertEquals("Event rank", 1001, context.getRank()); + assertEquals("Context rank", 1001, context.getRank()); - event = fExperiment.parseEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + assertEquals("Context rank", 1002, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1002, context.getRank()); - - // Position trace at event rank 4500 + // Position trace at event rank 4500 (TS = 4501) context = fExperiment.seekEvent(new TmfTimestamp(4501, SCALE, 0)); - assertEquals("Event rank", 4500, context.getRank()); - - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4500, context.getRank()); + assertEquals("Context rank", 4500, context.getRank()); - event = fExperiment.readNextEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4501, context.getRank()); + assertEquals("Context rank", 4501, context.getRank()); } - public void testSeekEventOnTimestampOutOfScope() throws Exception { + public void testSeekTimestampOutOfScope() throws Exception { // Position trace at beginning - TmfContext context = fExperiment.seekEvent(new TmfTimestamp(-1, SCALE, 0)); - assertEquals("Event rank", 0, context.getRank()); - - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); + ITmfContext context = fExperiment.seekEvent(new TmfTimestamp(-1, SCALE, 0)); assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.readNextEvent(context); + ITmfEvent event = fExperiment.getNext(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 location", null, context.getLocation()); + event = fExperiment.getNext(context); + assertNull("Event location", event); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); } // ------------------------------------------------------------------------ - // seekEvent on rank + // seekEvent by location (context rank is undefined) // ------------------------------------------------------------------------ - public void testSeekOnRankOnCacheBoundary() throws Exception { + public void testSeekLocationOnCacheBoundary() throws Exception { + + long cacheSize = fExperiment.getCacheSize(); - // On lower bound, returns the first event (ts = 1) - TmfContext context = fExperiment.seekEvent(0); - assertEquals("Event rank", 0, context.getRank()); + // Position trace at event rank 0 + ITmfContext tmpContext = fExperiment.seekEvent(0); + ITmfContext context = fExperiment.seekEvent(tmpContext.getLocation()); - ITmfEvent event = fExperiment.parseEvent(context); + ITmfEvent event = fExperiment.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 1, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); - // Position trace at event rank 1000 - context = fExperiment.seekEvent(1000); - assertEquals("Event rank", 1000, context.getRank()); + // Position trace at event rank 'cacheSize' + tmpContext = fExperiment.seekEvent(cacheSize); + context = fExperiment.seekEvent(tmpContext.getLocation()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1000, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize + 2, event.getTimestamp().getValue()); - // Position trace at event rank 4000 - context = fExperiment.seekEvent(4000); - assertEquals("Event rank", 4000, context.getRank()); + // Position trace at event rank 4 * 'cacheSize' + tmpContext = fExperiment.seekEvent(4 * cacheSize); + context = fExperiment.seekEvent(tmpContext.getLocation()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4000, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 4 * cacheSize + 1, event.getTimestamp().getValue()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4001, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 4 * cacheSize + 2, event.getTimestamp().getValue()); } - public void testSeekOnRankNotOnCacheBoundary() throws Exception { - - // Position trace at event rank 9 - TmfContext context = fExperiment.seekEvent(9); - assertEquals("Event rank", 9, context.getRank()); + public void testSeekLocationNotOnCacheBoundary() throws Exception { - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 9, context.getRank()); + long cacheSize = fExperiment.getCacheSize(); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 10, context.getRank()); + // Position trace at event 'cacheSize' - 1 + ITmfContext tmpContext = fExperiment.seekEvent(cacheSize - 1); + ITmfContext context = fExperiment.seekEvent(tmpContext.getLocation()); - // Position trace at event rank 999 - context = fExperiment.seekEvent(999); - assertEquals("Event rank", 999, context.getRank()); + ITmfEvent event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize, event.getTimestamp().getValue()); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); - assertEquals("Event rank", 999, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue()); - event = fExperiment.readNextEvent(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()); + // Position trace at event rank 2 * 'cacheSize' - 1 + tmpContext = fExperiment.seekEvent(2 * cacheSize - 1); + context = fExperiment.seekEvent(tmpContext.getLocation()); + context = fExperiment.seekEvent(2 * cacheSize - 1); - event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 2 * cacheSize, event.getTimestamp().getValue()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1002, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 2 * cacheSize + 1, event.getTimestamp().getValue()); // Position trace at event rank 4500 - context = fExperiment.seekEvent(4500); - assertEquals("Event rank", 4500, context.getRank()); + tmpContext = fExperiment.seekEvent(4500); + context = fExperiment.seekEvent(tmpContext.getLocation()); - event = fExperiment.parseEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4500, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4501, context.getRank()); + event = fExperiment.getNext(context); + assertEquals("Event timestamp", 4502, event.getTimestamp().getValue()); } - public void testSeekEventOnRankOutOfScope() throws Exception { + public void testSeekLocationOutOfScope() throws Exception { // Position trace at beginning - TmfContext context = fExperiment.seekEvent(-1); - assertEquals("Event rank", 0, context.getRank()); - - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); + ITmfContext context = fExperiment.seekEvent((ITmfLocation<?>) null); - event = fExperiment.readNextEvent(context); + ITmfEvent event = fExperiment.getNext(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 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 { - - final int NB_READS = 20; - - // On lower bound, returns the first event (ts = 1) - final TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0)); - - // Read NB_EVENTS - ITmfEvent event = null;; - for (int i = 0; i < NB_READS; i++) { - event = fExperiment.readNextEvent(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 + // readtNextEvent - updates the context // ------------------------------------------------------------------------ - public void testGetNextEvent() throws Exception { + public void testReadNextEvent() throws Exception { // On lower bound, returns the first event (ts = 0) - final TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0)); - ITmfEvent event = fExperiment.readNextEvent(context); + final ITmfContext context = fExperiment.seekEvent(0); + ITmfEvent event = fExperiment.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); for (int i = 2; i < 20; i++) { - event = fExperiment.readNextEvent(context); + event = fExperiment.getNext(context); assertEquals("Event timestamp", i, event.getTimestamp().getValue()); } } @@ -686,21 +527,6 @@ public class TmfMultiTraceExperimentTest extends TestCase { } // ------------------------------------------------------------------------ - // getRank - // ------------------------------------------------------------------------ - - // public void testGetRank() throws Exception { - // - // 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))); - // assertEquals("getRank", 1000, fExperiment.getRank(new TmfTimestamp(1001, (byte) -3))); - // assertEquals("getRank", 2000, fExperiment.getRank(new TmfTimestamp(2001, (byte) -3))); - // assertEquals("getRank", 2500, fExperiment.getRank(new TmfTimestamp(2501, (byte) -3))); - // } - - // ------------------------------------------------------------------------ // getTimestamp // ------------------------------------------------------------------------ diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/AllTests.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/AllTests.java index e5d304222d..167d55a405 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/AllTests.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/AllTests.java @@ -19,8 +19,7 @@ import junit.framework.TestSuite; import org.eclipse.linuxtools.internal.tmf.core.TmfCorePlugin; /** - * <b><u>AllTests</u></b> - * <p> + * Test suite for org.eclipse.linuxtools.tmf.core.trace */ @SuppressWarnings("nls") public class AllTests { diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfCheckpointIndexTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfCheckpointIndexTest.java index f61a8a9590..3255dc29df 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfCheckpointIndexTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfCheckpointIndexTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2010, 20112 Ericsson + * Copyright (c) 2009, 2010, 2012 Ericsson * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -17,7 +17,7 @@ import java.io.File; import java.io.IOException; import java.net.URISyntaxException; import java.net.URL; -import java.util.Vector; +import java.util.List; import junit.framework.TestCase; @@ -33,9 +33,7 @@ import org.eclipse.linuxtools.tmf.core.trace.TmfContext; import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub; /** - * <b><u>TmfTraceTest</u></b> - * <p> - * Test suite for the TmfTrace class. + * Test suite for the TmfCheckpointIndexTest class. */ @SuppressWarnings("nls") public class TmfCheckpointIndexTest extends TestCase { @@ -46,7 +44,7 @@ public class TmfCheckpointIndexTest extends TestCase { private static final String DIRECTORY = "testfiles"; private static final String TEST_STREAM = "A-Test-10K"; - private static final int BLOCK_SIZE = 500; + private static final int BLOCK_SIZE = 100; private static final int NB_EVENTS = 10000; private static TestTrace fTrace = null; @@ -78,20 +76,21 @@ public class TmfCheckpointIndexTest extends TestCase { private class TestIndexer extends TmfCheckpointIndexer<ITmfTrace<ITmfEvent>> { @SuppressWarnings({ "unchecked", "rawtypes" }) public TestIndexer(TestTrace testTrace) { - super((ITmfTrace) testTrace); + super((ITmfTrace) testTrace, BLOCK_SIZE); } - public Vector<TmfCheckpoint> getCheckpoints() { - return fTraceIndex; + public List<TmfCheckpoint> getCheckpoints() { + return getTraceIndex(); } } private class TestTrace extends TmfTraceStub { public TestTrace(String path, int blockSize) throws TmfTraceException { super(path, blockSize); - fIndexer = new TestIndexer(this); + setIndexer(new TestIndexer(this)); } + @Override public TestIndexer getIndexer() { - return (TestIndexer) fIndexer; + return (TestIndexer) super.getIndexer(); } } @@ -129,9 +128,10 @@ public class TmfCheckpointIndexTest extends TestCase { assertEquals("getStartTime", 1, fTrace.getStartTime().getValue()); assertEquals("getEndTime", NB_EVENTS, fTrace.getEndTime().getValue()); - Vector<TmfCheckpoint> checkpoints = fTrace.getIndexer().getCheckpoints(); + List<TmfCheckpoint> checkpoints = fTrace.getIndexer().getCheckpoints(); int pageSize = fTrace.getCacheSize(); assertTrue("Checkpoints exist", checkpoints != null); + assertEquals("Checkpoints size", NB_EVENTS / BLOCK_SIZE, checkpoints.size()); // Validate that each checkpoint points to the right event for (int i = 0; i < checkpoints.size(); i++) { diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfCheckpointTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfCheckpointTest.java index d9d32d3f10..55e373b86f 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfCheckpointTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfCheckpointTest.java @@ -8,6 +8,7 @@ * * Contributors: * Francois Chouinard - Initial API and implementation + * Francois Chouinard - Adapted for TMF Trace Model 1.0 *******************************************************************************/ package org.eclipse.linuxtools.tmf.core.tests.trace; @@ -20,8 +21,6 @@ import org.eclipse.linuxtools.tmf.core.trace.TmfCheckpoint; import org.eclipse.linuxtools.tmf.core.trace.TmfLocation; /** - * <b><u>TmfCheckpointTest</u></b> - * <p> * Test suite for the TmfCheckpoint class. */ @SuppressWarnings("nls") diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfContextTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfContextTest.java index 9eb3db9115..6dd13f1192 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfContextTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfContextTest.java @@ -8,6 +8,7 @@ * * Contributors: * Francois Chouinard - Initial API and implementation + * Francois Chouinard - Adapted for TMF Trace Model 1.0 *******************************************************************************/ package org.eclipse.linuxtools.tmf.core.tests.trace; @@ -21,8 +22,6 @@ import org.eclipse.linuxtools.tmf.core.trace.TmfContext; import org.eclipse.linuxtools.tmf.core.trace.TmfLocation; /** - * <b><u>TmfContextTest</u></b> - * <p> * Test suite for the TmfContext class. */ @SuppressWarnings("nls") diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfExperimentTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfExperimentTest.java deleted file mode 100644 index 2deb9e54dd..0000000000 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfExperimentTest.java +++ /dev/null @@ -1,652 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Ericsson - * - * All rights reserved. This program and the accompanying materials are - * made available under the terms of the Eclipse Public License v1.0 which - * accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Francois Chouinard - Initial API and implementation - *******************************************************************************/ - -package org.eclipse.linuxtools.tmf.core.tests.trace; - -import java.io.File; -import java.io.IOException; -import java.net.URISyntaxException; -import java.net.URL; -import java.util.Vector; - -import junit.framework.TestCase; - -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; -import org.eclipse.linuxtools.tmf.core.event.ITmfEvent; -import org.eclipse.linuxtools.tmf.core.event.TmfEvent; -import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange; -import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp; -import org.eclipse.linuxtools.tmf.core.exceptions.TmfTraceException; -import org.eclipse.linuxtools.tmf.core.experiment.TmfExperiment; -import org.eclipse.linuxtools.tmf.core.experiment.TmfExperimentContext; -import org.eclipse.linuxtools.tmf.core.request.TmfEventRequest; -import org.eclipse.linuxtools.tmf.core.tests.TmfCoreTestPlugin; -import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace; -import org.eclipse.linuxtools.tmf.core.trace.TmfCheckpoint; -import org.eclipse.linuxtools.tmf.core.trace.TmfContext; -import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub; - -/** - * <b><u>TmfExperimentTest</u></b> - * <p> - * TODO: Implement me. Please. - */ -@SuppressWarnings("nls") -public class TmfExperimentTest extends TestCase { - - private static final String DIRECTORY = "testfiles"; - private static final String TEST_STREAM = "A-Test-10K"; - private static final String EXPERIMENT = "MyExperiment"; - private static int NB_EVENTS = 10000; - private static int fDefaultBlockSize = 1000; - - private static ITmfTrace<?>[] fTraces; - private static TmfExperiment<TmfEvent> fExperiment; - - private static byte SCALE = (byte) -3; - - // ------------------------------------------------------------------------ - // Housekeeping - // ------------------------------------------------------------------------ - - private synchronized ITmfTrace<?>[] setupTrace(final String path) { - if (fTraces == null) { - fTraces = new ITmfTrace[1]; - try { - final URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path), null); - final File test = new File(FileLocator.toFileURL(location).toURI()); - final TmfTraceStub trace = new TmfTraceStub(test.getPath(), true); - fTraces[0] = trace; - } catch (final TmfTraceException e) { - e.printStackTrace(); - } catch (final URISyntaxException e) { - e.printStackTrace(); - } catch (final IOException e) { - e.printStackTrace(); - } - } - return fTraces; - } - - @SuppressWarnings("unchecked") - private synchronized void setupExperiment() { - if (fExperiment == null) - fExperiment = new TmfExperiment<TmfEvent>(TmfEvent.class, EXPERIMENT, (ITmfTrace<TmfEvent>[]) fTraces); - // fExperiment.indexExperiment(); - } - - public TmfExperimentTest(final String name) throws Exception { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - setupTrace(DIRECTORY + File.separator + TEST_STREAM); - setupExperiment(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - } - - // ------------------------------------------------------------------------ - // Constructor - // ------------------------------------------------------------------------ - - public void testBasicTmfExperimentConstructor() { - assertEquals("GetId", EXPERIMENT, fExperiment.getName()); - assertEquals("GetEpoch", TmfTimestamp.ZERO, fExperiment.getEpoch()); - assertEquals("GetNbEvents", NB_EVENTS, fExperiment.getNbEvents()); - - final TmfTimeRange timeRange = fExperiment.getTimeRange(); - assertEquals("getStartTime", 1, timeRange.getStartTime().getValue()); - assertEquals("getEndTime", NB_EVENTS, timeRange.getEndTime().getValue()); - } - - // ------------------------------------------------------------------------ - // Verify checkpoints - // Note: seekLocation() does not reliably set the rank - // ------------------------------------------------------------------------ - - public void testValidateCheckpoints() throws Exception { - - final Vector<TmfCheckpoint> checkpoints = fExperiment.getCheckpoints(); - // 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++) { - final TmfCheckpoint checkpoint = checkpoints.get(i); - final TmfExperimentContext context = fExperiment.seekEvent(checkpoint.getLocation()); - final ITmfEvent event = fExperiment.parseEvent(context); - // assertEquals("Event rank", context.getRank(), i * pageSize); - 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 = 0) - final TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0)); - - ITmfEvent 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.readNextEvent(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) - final TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0)); - ITmfEvent event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - - for (int i = 2; i < 20; i++) { - event = fExperiment.readNextEvent(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.seekEvent(0); - // assertEquals("Event rank", 0, context.getRank()); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - // assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - // assertEquals("Event rank", 1, context.getRank()); - - // Position trace at event rank 1000 - TmfContext tmpContext = fExperiment.seekEvent(new TmfTimestamp(1001, SCALE, 0)); - context = fExperiment.seekEvent(tmpContext.getLocation().clone()); - // 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.readNextEvent(context); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - // assertEquals("Event rank", 1001, context.getRank()); - - // Position trace at event rank 4000 - tmpContext = fExperiment.seekEvent(new TmfTimestamp(4001, SCALE, 0)); - context = fExperiment.seekEvent(tmpContext.getLocation().clone()); - // 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.readNextEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - // assertEquals("Event rank", 4001, 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.seekEvent(tmpContext.getLocation().clone()); - // assertEquals("Event rank", 9, context.getRank()); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - // assertEquals("Event rank", 9, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - // assertEquals("Event rank", 10, context.getRank()); - - // Position trace at event rank 999 - tmpContext = fExperiment.seekEvent(new TmfTimestamp(1000, SCALE, 0)); - context = fExperiment.seekEvent(tmpContext.getLocation().clone()); - // 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.readNextEvent(context); - assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); - // assertEquals("Event rank", 1000, context.getRank()); - - // Position trace at event rank 1001 - tmpContext = fExperiment.seekEvent(new TmfTimestamp(1002, SCALE, 0)); - context = fExperiment.seekEvent(tmpContext.getLocation().clone()); - // 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.readNextEvent(context); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - // assertEquals("Event rank", 1002, context.getRank()); - - // Position trace at event rank 4500 - tmpContext = fExperiment.seekEvent(new TmfTimestamp(4501, SCALE, 0)); - context = fExperiment.seekEvent(tmpContext.getLocation().clone()); - // 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.readNextEvent(context); - assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - // assertEquals("Event rank", 4501, context.getRank()); - } - - public void testSeekLocationOutOfScope() throws Exception { - - // Position trace at beginning - TmfContext tmpContext = fExperiment.seekEvent(0); - TmfContext context = fExperiment.seekEvent(tmpContext.getLocation().clone()); - // assertEquals("Event rank", 0, context.getRank()); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - // assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - // 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.seekEvent(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.readNextEvent(context); - assertEquals("Event timestamp", null, event); - // assertEquals("Event rank", NB_EVENTS, context.getRank()); - } - - // ------------------------------------------------------------------------ - // seekEvent on timestamp - // ------------------------------------------------------------------------ - - public void testSeekEventOnTimestampOnCacheBoundary() throws Exception { - - // Position trace at event rank 0 - TmfContext context = fExperiment.seekEvent(new TmfTimestamp(1, SCALE, 0)); - assertEquals("Event rank", 0, context.getRank()); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.readNextEvent(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); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1000, context.getRank()); - event = fExperiment.readNextEvent(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); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4000, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4001, context.getRank()); - } - - public void testSeekEventOnTimestampNotOnCacheBoundary() throws Exception { - - // Position trace at event rank 1 - TmfContext context = fExperiment.seekEvent(new TmfTimestamp(2, SCALE, 0)); - assertEquals("Event rank", 1, context.getRank()); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); - assertEquals("Event rank", 1, context.getRank()); - event = fExperiment.readNextEvent(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); - assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 9, context.getRank()); - event = fExperiment.readNextEvent(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); - assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); - assertEquals("Event rank", 999, context.getRank()); - event = fExperiment.readNextEvent(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); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); - event = fExperiment.readNextEvent(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); - assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4500, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4501, context.getRank()); - } - - public void testSeekEventOnTimestampoutOfScope() throws Exception { - - // Position trace at beginning - TmfContext context = fExperiment.seekEvent(new TmfTimestamp(-1, SCALE, 0)); - assertEquals("Event rank", 0, context.getRank()); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.readNextEvent(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.readNextEvent(context); - assertEquals("Event timestamp", null, event); - assertEquals("Event rank", NB_EVENTS, context.getRank()); - } - - // ------------------------------------------------------------------------ - // seekEvent on rank - // ------------------------------------------------------------------------ - - public void testSeekOnRankOnCacheBoundary() throws Exception { - - // On lower bound, returns the first event (ts = 1) - TmfContext context = fExperiment.seekEvent(0); - assertEquals("Event rank", 0, context.getRank()); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.readNextEvent(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); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1000, context.getRank()); - event = fExperiment.readNextEvent(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); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4000, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4001, context.getRank()); - } - - public void testSeekOnRankNotOnCacheBoundary() throws Exception { - - // Position trace at event rank 9 - TmfContext context = fExperiment.seekEvent(9); - assertEquals("Event rank", 9, context.getRank()); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 9, context.getRank()); - event = fExperiment.readNextEvent(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); - assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); - assertEquals("Event rank", 999, context.getRank()); - event = fExperiment.readNextEvent(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); - assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); - event = fExperiment.readNextEvent(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); - assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4500, context.getRank()); - event = fExperiment.readNextEvent(context); - assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); - assertEquals("Event rank", 4501, context.getRank()); - } - - public void testSeekEventOnRankOfScope() throws Exception { - - // Position trace at beginning - TmfContext context = fExperiment.seekEvent(-1); - assertEquals("Event rank", 0, context.getRank()); - ITmfEvent event = fExperiment.parseEvent(context); - assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 0, context.getRank()); - event = fExperiment.readNextEvent(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.readNextEvent(context); - assertEquals("Event timestamp", null, event); - assertEquals("Event rank", NB_EVENTS, context.getRank()); - } - - // ------------------------------------------------------------------------ - // processRequest - // ------------------------------------------------------------------------ - - public void testProcessRequestForNbEvents() throws Exception { - final int blockSize = 100; - final int nbEvents = 1000; - final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>(); - - final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH); - final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) { - @Override - public void handleData(final TmfEvent event) { - super.handleData(event); - requestedEvents.add(event); - } - }; - fExperiment.sendRequest(request); - request.waitForCompletion(); - - assertEquals("nbEvents", nbEvents, requestedEvents.size()); - assertTrue("isCompleted", request.isCompleted()); - assertFalse("isCancelled", request.isCancelled()); - - // Ensure that we have distinct events. - // Don't go overboard: we are not validating the stub! - for (int i = 0; i < nbEvents; i++) - assertEquals("Distinct events", i+1, requestedEvents.get(i).getTimestamp().getValue()); - } - - public void testProcessRequestForNbEvents2() throws Exception { - final int blockSize = 2 * NB_EVENTS; - final int nbEvents = 1000; - final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>(); - - final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH); - final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) { - @Override - public void handleData(final TmfEvent event) { - super.handleData(event); - requestedEvents.add(event); - } - }; - fExperiment.sendRequest(request); - request.waitForCompletion(); - - assertEquals("nbEvents", nbEvents, requestedEvents.size()); - assertTrue("isCompleted", request.isCompleted()); - assertFalse("isCancelled", request.isCancelled()); - - // Ensure that we have distinct events. - // Don't go overboard: we are not validating the stub! - for (int i = 0; i < nbEvents; i++) - assertEquals("Distinct events", i+1, requestedEvents.get(i).getTimestamp().getValue()); - } - - public void testProcessRequestForAllEvents() throws Exception { - final int nbEvents = TmfEventRequest.ALL_DATA; - final int blockSize = 1; - final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>(); - final long nbExpectedEvents = fExperiment.getNbEvents(); - - final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH); - final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) { - @Override - public void handleData(final TmfEvent event) { - super.handleData(event); - requestedEvents.add(event); - } - }; - fExperiment.sendRequest(request); - request.waitForCompletion(); - - assertEquals("nbEvents", nbExpectedEvents, requestedEvents.size()); - assertTrue("isCompleted", request.isCompleted()); - assertFalse("isCancelled", request.isCancelled()); - - // Ensure that we have distinct events. - // Don't go overboard: we are not validating the stub! - for (int i = 0; i < nbExpectedEvents; i++) - assertEquals("Distinct events", i+1, requestedEvents.get(i).getTimestamp().getValue()); - } - - // ------------------------------------------------------------------------ - // cancel - // ------------------------------------------------------------------------ - - public void testCancel() throws Exception { - final int nbEvents = NB_EVENTS; - final int blockSize = fDefaultBlockSize; - final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>(); - - final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH); - final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) { - int nbRead = 0; - @Override - public void handleData(final TmfEvent event) { - super.handleData(event); - requestedEvents.add(event); - if (++nbRead == blockSize) - cancel(); - } - }; - fExperiment.sendRequest(request); - request.waitForCompletion(); - - assertEquals("nbEvents", blockSize, requestedEvents.size()); - assertTrue("isCompleted", request.isCompleted()); - assertTrue("isCancelled", request.isCancelled()); - } - - // ------------------------------------------------------------------------ - // getRank - // ------------------------------------------------------------------------ - - // public void testGetRank() throws Exception { - // 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))); - // assertEquals("getRank", 1000, fExperiment.getRank(new TmfTimestamp(1001, (byte) -3))); - // assertEquals("getRank", 2000, fExperiment.getRank(new TmfTimestamp(2001, (byte) -3))); - // assertEquals("getRank", 2500, fExperiment.getRank(new TmfTimestamp(2501, (byte) -3))); - // } - - // ------------------------------------------------------------------------ - // getTimestamp - // ------------------------------------------------------------------------ - - public void testGetTimestamp() throws Exception { - 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))); - assertTrue("getTimestamp", fExperiment.getTimestamp(2000).equals(new TmfTimestamp(2001, (byte) -3))); - assertTrue("getTimestamp", fExperiment.getTimestamp(2500).equals(new TmfTimestamp(2501, (byte) -3))); - } - -}
\ No newline at end of file diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfLocationTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfLocationTest.java index af7c07797e..a0cf96e777 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfLocationTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfLocationTest.java @@ -19,8 +19,6 @@ import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp; import org.eclipse.linuxtools.tmf.core.trace.TmfLocation; /** - * <b><u>TmfLocationTest</u></b> - * <p> * Test suite for the TmfLocation class. */ @SuppressWarnings("nls") diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfTraceTest.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfTraceTest.java index a6d63b90b4..40986df9b3 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfTraceTest.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfTraceTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2010, 20112 Ericsson + * Copyright (c) 2009, 2010, 2012 Ericsson * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -35,14 +35,12 @@ import org.eclipse.linuxtools.tmf.core.request.TmfDataRequest; import org.eclipse.linuxtools.tmf.core.request.TmfEventRequest; import org.eclipse.linuxtools.tmf.core.tests.TmfCoreTestPlugin; import org.eclipse.linuxtools.tmf.core.trace.ITmfContext; +import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace; import org.eclipse.linuxtools.tmf.core.trace.TmfCheckpointIndexer; import org.eclipse.linuxtools.tmf.core.trace.TmfContext; -import org.eclipse.linuxtools.tmf.core.trace.TmfTrace; import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub; /** - * <b><u>TmfTraceTest</u></b> - * <p> * Test suite for the TmfTrace class. */ @SuppressWarnings("nls") @@ -125,7 +123,7 @@ public class TmfTraceTest extends TestCase { assertEquals("getType", TmfEvent.class, trace.getType()); assertNull ("getResource", trace.getResource()); assertEquals("getPath", testfile.toURI().getPath(), trace.getPath()); - assertEquals("getCacheSize", TmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize()); + assertEquals("getCacheSize", ITmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize()); assertEquals("getStreamingInterval", 0, trace.getStreamingInterval()); assertEquals("getName", TEST_STREAM, trace.getName()); @@ -154,7 +152,7 @@ public class TmfTraceTest extends TestCase { assertEquals("getType", TmfEvent.class, trace.getType()); assertNull ("getResource", trace.getResource()); assertEquals("getPath", testfile.toURI().getPath(), trace.getPath()); - assertEquals("getCacheSize", TmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize()); + assertEquals("getCacheSize", ITmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize()); assertEquals("getStreamingInterval", 0, trace.getStreamingInterval()); assertEquals("getName", TEST_STREAM, trace.getName()); @@ -327,7 +325,7 @@ public class TmfTraceTest extends TestCase { assertEquals("getType", TmfEvent.class, trace.getType()); assertNull ("getResource", trace.getResource()); assertEquals("getPath", path, trace.getPath()); - assertEquals("getCacheSize", TmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize()); + assertEquals("getCacheSize", ITmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize()); assertEquals("getStreamingInterval", 0, trace.getStreamingInterval()); assertEquals("getName", path, trace.getName()); @@ -356,7 +354,7 @@ public class TmfTraceTest extends TestCase { assertEquals("getType", TmfEvent.class, trace.getType()); assertNull ("getResource", trace.getResource()); assertEquals("getPath", path, trace.getPath()); - assertEquals("getCacheSize", TmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize()); + assertEquals("getCacheSize", ITmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize()); assertEquals("getStreamingInterval", 0, trace.getStreamingInterval()); assertEquals("getName", name, trace.getName()); @@ -375,7 +373,7 @@ public class TmfTraceTest extends TestCase { assertFalse ("Open trace", trace == null); assertNull ("getType", trace.getType()); assertNull ("getResource", trace.getResource()); - assertEquals("getCacheSize", TmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize()); + assertEquals("getCacheSize", ITmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize()); assertEquals("getStreamingInterval", 0, trace.getStreamingInterval()); assertEquals("getName", "", trace.getName()); @@ -392,6 +390,7 @@ public class TmfTraceTest extends TestCase { // InitTrace and wait for indexing completion... trace.initTrace(null, testfile.getPath(), TmfEvent.class); + trace.indexTrace(); int nbSecs = 0; while (trace.getNbEvents() < NB_EVENTS && nbSecs < 10) { Thread.sleep(1000); @@ -404,7 +403,7 @@ public class TmfTraceTest extends TestCase { assertFalse ("Open trace", trace == null); assertEquals("getType", TmfEvent.class, trace.getType()); assertNull ("getResource", trace.getResource()); - assertEquals("getCacheSize", TmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize()); + assertEquals("getCacheSize", ITmfTrace.DEFAULT_TRACE_CACHE_SIZE, trace.getCacheSize()); assertEquals("getStreamingInterval", 0, trace.getStreamingInterval()); assertEquals("getName", TEST_STREAM, trace.getName()); @@ -517,7 +516,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); @@ -530,7 +529,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); @@ -543,7 +542,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); } @@ -559,7 +558,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); @@ -572,7 +571,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); @@ -585,7 +584,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); @@ -598,7 +597,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); } @@ -614,22 +613,17 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); // Position trace at event passed the end - tmpContext = fTrace.seekEvent(new TmfTimestamp(NB_EVENTS + 1, SCALE, 0)); - context = fTrace.seekEvent(tmpContext.getLocation()); - assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); - - event = fTrace.parseEvent(context); - assertEquals("Event timestamp", null, event); + context = fTrace.seekEvent(new TmfTimestamp(NB_EVENTS + 1, SCALE, 0)); + assertNull("Event timestamp", context.getLocation()); assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); - event = fTrace.readNextEvent(context); - assertEquals("Event timestamp", null, event); - assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); + event = fTrace.getNext(context); + assertNull("Event", event); } // ------------------------------------------------------------------------ @@ -657,7 +651,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 0, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 1, context.getRank()); @@ -669,7 +663,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); assertEquals("Event rank", 1000, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); assertEquals("Event rank", 1001, context.getRank()); @@ -681,7 +675,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); assertEquals("Event rank", 4000, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); assertEquals("Event rank", 4001, context.getRank()); } @@ -696,7 +690,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); assertEquals("Event rank", 1, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 2, event.getTimestamp().getValue()); assertEquals("Event rank", 2, context.getRank()); @@ -708,7 +702,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); assertEquals("Event rank", 9, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); assertEquals("Event rank", 10, context.getRank()); @@ -720,7 +714,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); assertEquals("Event rank", 999, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); assertEquals("Event rank", 1000, context.getRank()); @@ -732,7 +726,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); assertEquals("Event rank", 1001, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); assertEquals("Event rank", 1002, context.getRank()); @@ -744,7 +738,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); assertEquals("Event rank", 4500, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); assertEquals("Event rank", 4501, context.getRank()); } @@ -759,21 +753,21 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 0, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 1, context.getRank()); // Position trace at event passed the end context = fTrace.seekEvent(new TmfTimestamp(NB_EVENTS + 1, SCALE, 0)); - assertEquals("Event rank", NB_EVENTS, context.getRank()); + assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); event = fTrace.parseEvent(context); assertEquals("Event timestamp", null, event); - assertEquals("Event rank", NB_EVENTS, context.getRank()); + assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", null, event); - assertEquals("Event rank", NB_EVENTS, context.getRank()); + assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank()); } // ------------------------------------------------------------------------ @@ -801,7 +795,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 0, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 1, context.getRank()); @@ -813,7 +807,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); assertEquals("Event rank", 1000, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); assertEquals("Event rank", 1001, context.getRank()); @@ -825,7 +819,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); assertEquals("Event rank", 4000, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); assertEquals("Event rank", 4001, context.getRank()); } @@ -840,7 +834,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); assertEquals("Event rank", 9, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); assertEquals("Event rank", 10, context.getRank()); @@ -852,7 +846,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); assertEquals("Event rank", 999, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); assertEquals("Event rank", 1000, context.getRank()); @@ -864,7 +858,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); assertEquals("Event rank", 1001, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1002, event.getTimestamp().getValue()); assertEquals("Event rank", 1002, context.getRank()); @@ -876,12 +870,12 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 4501, event.getTimestamp().getValue()); assertEquals("Event rank", 4500, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(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 ITmfContext context = fTrace.seekEvent(-1); @@ -891,7 +885,7 @@ public class TmfTraceTest extends TestCase { assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 0, context.getRank()); - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); assertEquals("Event rank", 1, context.getRank()); @@ -900,11 +894,11 @@ public class TmfTraceTest extends TestCase { assertEquals("Event rank", NB_EVENTS, context.getRank()); event = fTrace.parseEvent(context); - assertEquals("Event timestamp", null, event); + assertNull("Event", event); assertEquals("Event rank", NB_EVENTS, context.getRank()); - event = fTrace.readNextEvent(context); - assertEquals("Event timestamp", null, event); + event = fTrace.getNext(context); + assertNull("Event", event); assertEquals("Event rank", NB_EVENTS, context.getRank()); } @@ -937,7 +931,7 @@ public class TmfTraceTest extends TestCase { // Position the trace at event NB_READS for (int i = 1; i < NB_READS; i++) { - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", i, event.getTimestamp().getValue()); } @@ -967,7 +961,7 @@ public class TmfTraceTest extends TestCase { // Read NB_EVENTS ITmfEvent event; for (int i = 0; i < NB_READS; i++) { - event = fTrace.readNextEvent(context); + event = fTrace.getNext(context); assertEquals("Event timestamp", i + 1, event.getTimestamp().getValue()); assertEquals("Event rank", i + 1, context.getRank()); } diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/tests/stubs/trace/TmfEventParserStub.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/tests/stubs/trace/TmfEventParserStub.java index 47f64a6f8e..44b51f8913 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/tests/stubs/trace/TmfEventParserStub.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/tests/stubs/trace/TmfEventParserStub.java @@ -82,35 +82,35 @@ public class TmfEventParserStub implements ITmfEventParser<TmfEvent> { // no need to use synchronized since it's already cover by the calling method long location = 0; - if (context != null) + if (context != null && context.getLocation() != null) { location = ((TmfLocation<Long>) (context.getLocation())).getLocation(); - - try { - stream.seek(location); - - final long ts = stream.readLong(); - final String source = stream.readUTF(); - final String type = stream.readUTF(); - final Integer reference = stream.readInt(); - final int typeIndex = Integer.parseInt(type.substring(typePrefix.length())); - final String[] fields = new String[typeIndex]; - for (int i = 0; i < typeIndex; i++) - fields[i] = stream.readUTF(); - - final StringBuffer content = new StringBuffer("["); - if (typeIndex > 0) - content.append(fields[0]); - for (int i = 1; i < typeIndex; i++) - content.append(", ").append(fields[i]); - content.append("]"); - - final TmfEventField root = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, content.toString()); - final TmfEvent event = new TmfEvent(fEventStream, - new TmfTimestamp(ts, -3, 0), // millisecs - source, fTypes[typeIndex], root, reference.toString()); - return event; - } catch (final EOFException e) { - } catch (final IOException e) { + try { + stream.seek(location); + + final long ts = stream.readLong(); + final String source = stream.readUTF(); + final String type = stream.readUTF(); + final Integer reference = stream.readInt(); + final int typeIndex = Integer.parseInt(type.substring(typePrefix.length())); + final String[] fields = new String[typeIndex]; + for (int i = 0; i < typeIndex; i++) + fields[i] = stream.readUTF(); + + final StringBuffer content = new StringBuffer("["); + if (typeIndex > 0) + content.append(fields[0]); + for (int i = 1; i < typeIndex; i++) + content.append(", ").append(fields[i]); + content.append("]"); + + final TmfEventField root = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, content.toString()); + final TmfEvent event = new TmfEvent(fEventStream, + new TmfTimestamp(ts, -3, 0), // millisecs + source, fTypes[typeIndex], root, reference.toString()); + return event; + } catch (final EOFException e) { + } catch (final IOException e) { + } } return null; } diff --git a/lttng/org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/tests/stubs/trace/TmfTraceStub.java b/lttng/org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/tests/stubs/trace/TmfTraceStub.java index b123368310..e005b39855 100644 --- a/lttng/org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/tests/stubs/trace/TmfTraceStub.java +++ b/lttng/org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/tests/stubs/trace/TmfTraceStub.java @@ -26,6 +26,7 @@ import org.eclipse.linuxtools.tmf.core.exceptions.TmfTraceException; import org.eclipse.linuxtools.tmf.core.trace.ITmfContext; import org.eclipse.linuxtools.tmf.core.trace.ITmfEventParser; import org.eclipse.linuxtools.tmf.core.trace.ITmfLocation; +import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace; import org.eclipse.linuxtools.tmf.core.trace.ITmfTraceIndexer; import org.eclipse.linuxtools.tmf.core.trace.TmfContext; import org.eclipse.linuxtools.tmf.core.trace.TmfLocation; @@ -62,7 +63,7 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> implements ITmfEventParser< */ public TmfTraceStub() { super(); - fParser = new TmfEventParserStub(this); + setParser(new TmfEventParserStub(this)); } /** @@ -70,7 +71,7 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> implements ITmfEventParser< * @throws FileNotFoundException */ public TmfTraceStub(final String path) throws TmfTraceException { - this(path, DEFAULT_TRACE_CACHE_SIZE, false); + this(path, ITmfTrace.DEFAULT_TRACE_CACHE_SIZE, false); } /** @@ -94,7 +95,7 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> implements ITmfEventParser< } catch (FileNotFoundException e) { throw new TmfTraceException(e.getMessage()); } - fParser = new TmfEventParserStub(this); + setParser(new TmfEventParserStub(this)); } /** @@ -112,7 +113,7 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> implements ITmfEventParser< * @throws FileNotFoundException */ public TmfTraceStub(final String path, final boolean waitForCompletion) throws TmfTraceException { - this(path, DEFAULT_TRACE_CACHE_SIZE, waitForCompletion); + this(path, ITmfTrace.DEFAULT_TRACE_CACHE_SIZE, waitForCompletion); } /** @@ -128,7 +129,10 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> implements ITmfEventParser< } catch (FileNotFoundException e) { throw new TmfTraceException(e.getMessage()); } - fParser = new TmfEventParserStub(this); + setParser(new TmfEventParserStub(this)); + if (waitForCompletion) { + indexTrace(); + } } /** @@ -144,7 +148,7 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> implements ITmfEventParser< } catch (FileNotFoundException e) { throw new TmfTraceException(e.getMessage()); } - fParser = new TmfEventParserStub(this); + setParser(new TmfEventParserStub(this)); } /** @@ -162,7 +166,7 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> implements ITmfEventParser< } catch (FileNotFoundException e) { throw new TmfTraceException(e.getMessage()); } - fParser = (parser != null) ? parser : new TmfEventParserStub(this); + setParser((parser != null) ? parser : new TmfEventParserStub(this)); } /** @@ -175,11 +179,11 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> implements ITmfEventParser< } catch (FileNotFoundException e) { throw new TmfTraceException(e.getMessage()); } - fParser = new TmfEventParserStub(this); + setParser(new TmfEventParserStub(this)); } public void indexTrace() { - fIndexer.buildIndex(true); + indexTrace(true); } @Override @@ -189,7 +193,7 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> implements ITmfEventParser< } catch (FileNotFoundException e) { throw new TmfTraceException(e.getMessage()); } - fParser = new TmfEventParserStub(this); + setParser(new TmfEventParserStub(this)); super.initTrace(resource, path, type); } @@ -299,13 +303,10 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> implements ITmfEventParser< fLock.lock(); try { // parseNextEvent will update the context - if (fTrace != null) { - final TmfEvent event = fParser.parseEvent(context.clone()); + if (fTrace != null && getParser() != null && context != null) { + final TmfEvent event = getParser().parseEvent(context.clone()); return event; } -// } -// catch (final IOException e) { -// e.printStackTrace(); } finally { fLock.unlock(); } |