[Bug309042] Improved code coverage, JUnit + minor bug fixes
authorFrancois Chouinard <fchouinard@gmail.com>
Mon, 3 May 2010 17:48:16 +0000 (17:48 +0000)
committerFrancois Chouinard <fchouinard@gmail.com>
Mon, 3 May 2010 17:48:16 +0000 (17:48 +0000)
43 files changed:
org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramView.java
org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/ProjectView.java
org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/timeframe/TimeFrameView.java
org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/experiment/StateExperimentManager.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/AllTmfCoreTests.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/component/AllTests.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/component/TmfEventProviderTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/component/TmfProviderManagerTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventContentTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventFieldTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventReferenceTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventSourceTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventTypeTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfTimeRangeTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfTimestampTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/TmfExperimentTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/TmfMultiTraceExperimentTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfCoalescedDataRequestTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfCoalescedEventRequestTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfDataRequestTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfEventRequestTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfRequestExecutorTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/AllTests.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfContextTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfMultiTraceExperimentTest.java [deleted file]
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfTraceTest.java
org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/trace/TmfTraceStub.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/TmfEventsView.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfProviderManager.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfTimestamp.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentSelectedSignal.java [deleted file]
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentUpdatedSignal.java [deleted file]
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/ITmfContext.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/ITmfLocation.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/ITmfTrace.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfCheckpoint.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfContext.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfLocation.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfTrace.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfTraceUpdatedSignal.java [deleted file]

index 3a15b12119d84ed311f1c99665dff5a1107b4e38..4eab98c8a69ed4b727d80120d0cef2f1702cd5c7 100644 (file)
@@ -16,8 +16,8 @@ import org.eclipse.linuxtools.lttng.event.LttngTimestamp;
 import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.experiment.TmfExperiment;
-import org.eclipse.linuxtools.tmf.experiment.TmfExperimentSelectedSignal;
-import org.eclipse.linuxtools.tmf.experiment.TmfExperimentUpdatedSignal;
+import org.eclipse.linuxtools.tmf.signal.TmfExperimentSelectedSignal;
+import org.eclipse.linuxtools.tmf.signal.TmfExperimentUpdatedSignal;
 import org.eclipse.linuxtools.tmf.signal.TmfRangeSynchSignal;
 import org.eclipse.linuxtools.tmf.signal.TmfSignalHandler;
 import org.eclipse.linuxtools.tmf.signal.TmfTimeSynchSignal;
index 9b6db4279c29f5e2af0a70ea969cb5c3413e51ca..48936e175e4cd1e5a528c9b7c82d5823ca371032 100644 (file)
@@ -33,7 +33,7 @@ import org.eclipse.linuxtools.lttng.ui.views.project.model.LTTngProjectLabelProv
 import org.eclipse.linuxtools.lttng.ui.views.project.model.LTTngProjectRoot;
 import org.eclipse.linuxtools.lttng.ui.views.project.model.LTTngTraceNode;
 import org.eclipse.linuxtools.tmf.experiment.TmfExperiment;
-import org.eclipse.linuxtools.tmf.experiment.TmfExperimentSelectedSignal;
+import org.eclipse.linuxtools.tmf.signal.TmfExperimentSelectedSignal;
 import org.eclipse.linuxtools.tmf.trace.ITmfTrace;
 import org.eclipse.linuxtools.tmf.ui.views.TmfView;
 import org.eclipse.swt.SWT;
index 92979192e03fb263d14702b656df490267c9d26b..de308e4f9d46ce8cd97333cc5c1a730de4017e0a 100644 (file)
@@ -16,8 +16,8 @@ import org.eclipse.linuxtools.lttng.event.LttngEvent;
 import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.experiment.TmfExperiment;
-import org.eclipse.linuxtools.tmf.experiment.TmfExperimentSelectedSignal;
-import org.eclipse.linuxtools.tmf.experiment.TmfExperimentUpdatedSignal;
+import org.eclipse.linuxtools.tmf.signal.TmfExperimentSelectedSignal;
+import org.eclipse.linuxtools.tmf.signal.TmfExperimentUpdatedSignal;
 import org.eclipse.linuxtools.tmf.signal.TmfSignalHandler;
 import org.eclipse.linuxtools.tmf.signal.TmfTimeSynchSignal;
 import org.eclipse.linuxtools.tmf.ui.views.TmfView;
index e6c5415b0696760ea209a8b8bb100fd19a2a8b81..98b364c9ead7a25367519f63c963f0ae8527a411 100644 (file)
@@ -20,7 +20,7 @@ import org.eclipse.linuxtools.lttng.state.StateManager;
 import org.eclipse.linuxtools.tmf.component.TmfComponent;
 import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.experiment.TmfExperiment;
-import org.eclipse.linuxtools.tmf.experiment.TmfExperimentSelectedSignal;
+import org.eclipse.linuxtools.tmf.signal.TmfExperimentSelectedSignal;
 import org.eclipse.linuxtools.tmf.signal.TmfSignalHandler;
 
 /**
index a05928da9d32c82bc56bc65049eb7e936c8cd184..d6f4d82cf0faabb53116d5358209866d891e75dd 100644 (file)
@@ -1,57 +1,36 @@
+/*******************************************************************************
+ * 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.tests;
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.eclipse.linuxtools.tmf.tests.component.TmfEventProviderTest;
-import org.eclipse.linuxtools.tmf.tests.component.TmfProviderManagerTest;
-import org.eclipse.linuxtools.tmf.tests.event.TmfEventContentTest;
-import org.eclipse.linuxtools.tmf.tests.event.TmfEventFieldTest;
-import org.eclipse.linuxtools.tmf.tests.event.TmfEventReferenceTest;
-import org.eclipse.linuxtools.tmf.tests.event.TmfEventSourceTest;
-import org.eclipse.linuxtools.tmf.tests.event.TmfEventTest;
-import org.eclipse.linuxtools.tmf.tests.event.TmfEventTypeTest;
-import org.eclipse.linuxtools.tmf.tests.event.TmfTimeRangeTest;
-import org.eclipse.linuxtools.tmf.tests.event.TmfTimestampTest;
-import org.eclipse.linuxtools.tmf.tests.event.TmfTraceEventTest;
-import org.eclipse.linuxtools.tmf.tests.request.TmfCoalescedDataRequestTest;
-import org.eclipse.linuxtools.tmf.tests.request.TmfCoalescedEventRequestTest;
-import org.eclipse.linuxtools.tmf.tests.request.TmfDataRequestTest;
-import org.eclipse.linuxtools.tmf.tests.request.TmfEventRequestTest;
-import org.eclipse.linuxtools.tmf.tests.request.TmfRequestExecutorTest;
-import org.eclipse.linuxtools.tmf.tests.trace.TmfExperimentTest;
-import org.eclipse.linuxtools.tmf.tests.trace.TmfMultiTraceExperimentTest;
-import org.eclipse.linuxtools.tmf.tests.trace.TmfTraceTest;
-
+/**
+ * <b><u>AllTmfCoreTests</u></b>
+ * <p>
+ * Master test suite for TMF Core.
+ */
 public class AllTmfCoreTests {
 
        public static Test suite() {
                TestSuite suite = new TestSuite(AllTmfCoreTests.class.getName());
                //$JUnit-BEGIN$
                suite.addTestSuite(TmfCorePluginTest.class);
-
-               suite.addTestSuite(TmfEventFieldTest.class);
-               suite.addTestSuite(TmfEventContentTest.class);
-               suite.addTestSuite(TmfEventTypeTest.class);
-               suite.addTestSuite(TmfEventSourceTest.class);
-               suite.addTestSuite(TmfTraceEventTest.class);
-               suite.addTestSuite(TmfEventReferenceTest.class);
-               suite.addTestSuite(TmfTimestampTest.class);
-               suite.addTestSuite(TmfTimeRangeTest.class);
-               suite.addTestSuite(TmfEventTest.class);
-
-               suite.addTestSuite(TmfDataRequestTest.class);
-               suite.addTestSuite(TmfEventRequestTest.class);
-               suite.addTestSuite(TmfCoalescedDataRequestTest.class);
-               suite.addTestSuite(TmfCoalescedEventRequestTest.class);
-               suite.addTestSuite(TmfRequestExecutorTest.class);
-
-               suite.addTestSuite(TmfEventProviderTest.class);
-               suite.addTestSuite(TmfProviderManagerTest.class);
-
-               suite.addTestSuite(TmfTraceTest.class);
-               suite.addTestSuite(TmfExperimentTest.class);
-               suite.addTestSuite(TmfMultiTraceExperimentTest.class);
+               suite.addTest(org.eclipse.linuxtools.tmf.tests.event.AllTests.suite());
+               suite.addTest(org.eclipse.linuxtools.tmf.tests.request.AllTests.suite());
+               suite.addTest(org.eclipse.linuxtools.tmf.tests.component.AllTests.suite());
+               suite.addTest(org.eclipse.linuxtools.tmf.tests.trace.AllTests.suite());
+               suite.addTest(org.eclipse.linuxtools.tmf.tests.experiment.AllTests.suite());
                //$JUnit-END$
                return suite;
        }
index 411ae21f3ff10ed9dc637c4dd4d69429c1ba8781..78a05323993770073ab381935a0f699f86876e9c 100644 (file)
@@ -8,8 +8,8 @@ public class AllTests {
        public static Test suite() {
                TestSuite suite = new TestSuite(AllTests.class.getName());
                //$JUnit-BEGIN$
-               suite.addTestSuite(TmfEventProviderTest.class);
                suite.addTestSuite(TmfProviderManagerTest.class);
+               suite.addTestSuite(TmfEventProviderTest.class);
                //$JUnit-END$
                return suite;
        }
index d9fb0c9abecc69cbc02ec3aded19e6a35bc33830..5acb7ae46acd6354afbad5ad6e6d8abe3bb20663 100644 (file)
@@ -31,7 +31,7 @@ import org.eclipse.linuxtools.tmf.trace.TmfTraceStub;
 /**
  * <b><u>TmfClientTest</u></b>
  * <p>
- * TODO: Implement me. Please.
+ * Test suite for the TmfEventProvider class.
  */
 public class TmfEventProviderTest extends TestCase {
 
@@ -65,17 +65,17 @@ public class TmfEventProviderTest extends TestCase {
 
                // There should be 2 TmfEvent providers: a TmfTraceStub and a TmfEventProviderStub
                ITmfDataProvider<TmfEvent>[] eventProviders = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
-               assertTrue(eventProviders.length == 2);
+               assertEquals("getProviders", 2, eventProviders.length);
 
                eventProviders = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfTraceStub.class);
-               assertTrue(eventProviders.length == 1);
+               assertEquals("getProviders", 1, eventProviders.length);
 
                eventProviders = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfEventProviderStub.class);
-               assertTrue(eventProviders.length == 1);
+               assertEquals("getProviders", 1, eventProviders.length);
 
                // There should be 1 TmfSyntheticEventStub provider
                eventProviders = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfSyntheticEventStub.class);
-               assertTrue(eventProviders.length == 1);
+               assertEquals("getProviders", 1, eventProviders.length);
        }
 
        // ------------------------------------------------------------------------
@@ -201,17 +201,17 @@ public class TmfEventProviderTest extends TestCase {
 
                // There should be 2 TmfEvent providers: a TmfTraceStub and a TmfEventProviderStub
                ITmfDataProvider<TmfEvent>[] eventProviders = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
-               assertTrue(eventProviders.length == 2);
+               assertEquals("getProviders", 2, eventProviders.length);
 
                eventProviders = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfTraceStub.class);
-               assertTrue(eventProviders.length == 1);
+               assertEquals("getProviders", 1, eventProviders.length);
 
                eventProviders = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfEventProviderStub.class);
-               assertTrue(eventProviders.length == 1);
+               assertEquals("getProviders", 1, eventProviders.length);
 
                // There should be 1 TmfSyntheticEventStub provider
                eventProviders = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfSyntheticEventStub.class);
-               assertTrue(eventProviders.length == 1);
+               assertEquals("getProviders", 1, eventProviders.length);
        }
 
 }
index d8d0670442a67dfb62c5858d12a77bd9d8dd56be..1b9e7e2c0c4a56ae4d6ce11cdf69cefff85f0624 100644 (file)
@@ -23,7 +23,7 @@ import org.eclipse.linuxtools.tmf.trace.ITmfContext;
 /**
  * <b><u>TmfProviderManagerTest</u></b>
  * <p>
- * TODO: Implement me. Please.
+ * Test suite for the TmfProviderManager class.
  */
 public class TmfProviderManagerTest extends TestCase {
 
@@ -106,16 +106,16 @@ public class TmfProviderManagerTest extends TestCase {
        }
 
        // ------------------------------------------------------------------------
-       // register()
+       // register/dispose
        // ------------------------------------------------------------------------
 
        @SuppressWarnings("unchecked")
        public void testRegister_0() {
                TmfDataProvider<TmfEvent>[] providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
        }
 
        @SuppressWarnings("unchecked")
@@ -125,21 +125,21 @@ public class TmfProviderManagerTest extends TestCase {
                TestProvider1 testProvider1 = new TestProvider1(TmfEvent.class);
 
                TmfDataProvider<TmfEvent>[] providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
-               assertTrue(providers.length == 1);
-               assertTrue(providers[0] == testProvider1);
+               assertEquals("getProviders", 1, providers.length);
+               assertEquals("getProviders", testProvider1, providers[0]);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
-               assertTrue(providers.length == 1);
-               assertTrue(providers[0] == testProvider1);
+               assertEquals("getProviders", 1, providers.length);
+               assertEquals("getProviders", testProvider1, providers[0]);
 
                // Unregister it
                testProvider1.dispose();
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
        }
 
        @SuppressWarnings("unchecked")
@@ -150,48 +150,49 @@ public class TmfProviderManagerTest extends TestCase {
                TestProvider2 testProvider2 = new TestProvider2(TmfEvent.class);
 
                TmfDataProvider<TmfEvent>[] providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
+               assertEquals("getProviders", 2, providers.length);
                assertTrue(providers.length == 2);
                if (providers[0] == testProvider1) {
-                       assertTrue(providers[1] == testProvider2);
+                       assertEquals("getProviders", testProvider2, providers[1]);
                }
                else {
-                       assertTrue(providers[1] == testProvider1);
-                       assertTrue(providers[0] == testProvider2);
+                       assertEquals("getProviders", testProvider2, providers[0]);
+                       assertEquals("getProviders", testProvider1, providers[1]);
                }
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
-               assertTrue(providers.length == 1);
-               assertTrue(providers[0] == testProvider1);
+               assertEquals("getProviders", 1, providers.length);
+               assertEquals("getProviders", testProvider1, providers[0]);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
-               assertTrue(providers.length == 1);
-               assertTrue(providers[0] == testProvider2);
+               assertEquals("getProviders", 1, providers.length);
+               assertEquals("getProviders", testProvider2, providers[0]);
 
                // Remove one
                testProvider1.dispose();
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
-               assertTrue(providers.length == 1);
-               assertTrue(providers[0] == testProvider2);
+               assertEquals("getProviders", 1, providers.length);
+               assertEquals("getProviders", testProvider2, providers[0]);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
-               assertTrue(providers.length == 1);
-               assertTrue(providers[0] == testProvider2);
+               assertEquals("getProviders", 1, providers.length);
+               assertEquals("getProviders", testProvider2, providers[0]);
 
                // Remove the other
                testProvider2.dispose();
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
        }
 
        @SuppressWarnings("unchecked")
@@ -203,90 +204,118 @@ public class TmfProviderManagerTest extends TestCase {
                TestProvider3 testProvider3 = new TestProvider3(TmfEvent3.class);
 
                TmfDataProvider<TmfEvent>[] providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
-               assertTrue(providers.length == 2);
+               assertEquals("getProviders", 2, providers.length);
                if (providers[0] == testProvider1) {
-                       assertTrue(providers[1] == testProvider2);
+                       assertEquals("getProviders", testProvider2, providers[1]);
                }
                else {
-                       assertTrue(providers[1] == testProvider1);
-                       assertTrue(providers[0] == testProvider2);
+                       assertEquals("getProviders", testProvider2, providers[0]);
+                       assertEquals("getProviders", testProvider1, providers[1]);
                }
 
                TmfDataProvider<TmfEvent3>[] providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class);
-               assertTrue(providers3.length == 1);
-               assertTrue(providers3[0] == testProvider3);
+               assertEquals("getProviders", 1, providers3.length);
+               assertEquals("getProviders", testProvider3, providers3[0]);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
-               assertTrue(providers.length == 1);
-               assertTrue(providers[0] == testProvider1);
+               assertEquals("getProviders", 1, providers.length);
+               assertEquals("getProviders", testProvider1, providers[0]);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
-               assertTrue(providers.length == 1);
-               assertTrue(providers[0] == testProvider2);
+               assertEquals("getProviders", 1, providers.length);
+               assertEquals("getProviders", testProvider2, providers[0]);
 
                providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class, TestProvider3.class);
-               assertTrue(providers3.length == 1);
-               assertTrue(providers3[0] == testProvider3);
+               assertEquals("getProviders", 1, providers3.length);
+               assertEquals("getProviders", testProvider3, providers3[0]);
 
                // Remove one
                testProvider1.dispose();
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
-               assertTrue(providers.length == 1);
-               assertTrue(providers[0] == testProvider2);
+               assertEquals("getProviders", 1, providers.length);
+               assertEquals("getProviders", testProvider2, providers[0]);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
-               assertTrue(providers.length == 1);
-               assertTrue(providers[0] == testProvider2);
+               assertEquals("getProviders", 1, providers.length);
+               assertEquals("getProviders", testProvider2, providers[0]);
 
                providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class);
-               assertTrue(providers3.length == 1);
-               assertTrue(providers3[0] == testProvider3);
+               assertEquals("getProviders", 1, providers3.length);
+               assertEquals("getProviders", testProvider3, providers3[0]);
 
                providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class, TestProvider3.class);
-               assertTrue(providers3.length == 1);
-               assertTrue(providers3[0] == testProvider3);
+               assertEquals("getProviders", 1, providers3.length);
+               assertEquals("getProviders", testProvider3, providers3[0]);
 
                // Remove another one
                testProvider2.dispose();
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class);
                assertTrue(providers3.length == 1);
                assertTrue(providers3[0] == testProvider3);
 
                providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class, TestProvider3.class);
-               assertTrue(providers3.length == 1);
-               assertTrue(providers3[0] == testProvider3);
+               assertEquals("getProviders", 1, providers3.length);
+               assertEquals("getProviders", testProvider3, providers3[0]);
 
                // Remove the last one
                testProvider3.dispose();
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
-               assertTrue(providers.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class);
-               assertTrue(providers3.length == 0);
+               assertEquals("getProviders", 0, providers.length);
 
                providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class, TestProvider3.class);
-               assertTrue(providers3.length == 0);
+               assertEquals("getProviders", 0, providers.length);
+       }
+
+       @SuppressWarnings("unchecked")
+       public void testGetProvider() {
+
+               // Register 3 providers, mixed data types
+               TestProvider1 testProvider1 = new TestProvider1(TmfEvent.class);
+               TestProvider2 testProvider2 = new TestProvider2(TmfEvent.class);
+               TestProvider3 testProvider3 = new TestProvider3(TmfEvent3.class);
+
+               TmfDataProvider<TmfEvent>[] providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, null);
+               assertEquals("getProviders", 2, providers.length);
+               if (providers[0] == testProvider1) {
+                       assertEquals("getProviders", testProvider2, providers[1]);
+               }
+               else {
+                       assertEquals("getProviders", testProvider2, providers[0]);
+                       assertEquals("getProviders", testProvider1, providers[1]);
+               }
+
+               providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent3.class, null);
+               assertEquals("getProviders", 1, providers.length);
+               assertEquals("getProviders", testProvider3, providers[0]);
+
+               // Remove the providers
+               testProvider1.dispose();
+               testProvider2.dispose();
+               testProvider3.dispose();
        }
 
 }
\ No newline at end of file
index 6bd5b0a80e6ee83bb3bbd1ea74d3c31df63bf9b8..da1de6294c71ef7310a14a18137c2916fc4602f1 100644 (file)
@@ -143,14 +143,6 @@ public class TmfEventContentTest extends TestCase {
                assertTrue("equals", fBasicContent0.equals(fBasicContent2));
        }
        
-       public void testEqualsConsistency() throws Exception {
-               assertTrue("equals", fBasicContent0.equals(fBasicContent0));
-               assertTrue("equals", fBasicContent0.equals(fBasicContent0));
-
-               assertTrue("equals", fStubContent.equals(fStubContent));
-               assertTrue("equals", fStubContent.equals(fStubContent));
-       }
-       
        public void testEqualsNull() throws Exception {
                assertTrue("equals", !fBasicContent0.equals(null));
                assertTrue("equals", !fStubContent.equals(null));
index dd55f2cb86ecf370cea2386030e68148e2fbaf6f..e63ba86dcbe66276bfe72e6847a7e864522ea267 100644 (file)
@@ -169,14 +169,6 @@ public class TmfEventFieldTest extends TestCase {
                assertTrue("equals", fField0.equals(fField2));
        }
        
-       public void testEqualsConsistency() throws Exception {
-               assertTrue("equals", fField0.equals(fField0));
-               assertTrue("equals", fField0.equals(fField0));
-
-               assertTrue("equals", fField3.equals(fField3));
-               assertTrue("equals", fField3.equals(fField3));
-       }
-       
        public void testEqualsNull() throws Exception {
                assertTrue("equals", !fField0.equals(null));
                assertTrue("equals", !fField3.equals(null));
index 3cd0e67c85aa5cd03d7420c0d8f8a9d57a26147d..42e599898c9369d6f1f01cd38dd00b3d3b3ac9f7 100644 (file)
@@ -113,14 +113,6 @@ public class TmfEventReferenceTest extends TestCase {
                assertTrue("equals", fReference0.equals(fReference2));
        }
        
-       public void testEqualsConsistency() throws Exception {
-               assertTrue("equals", fReference0.equals(fReference0));
-               assertTrue("equals", fReference0.equals(fReference0));
-
-               assertTrue("equals", fReference3.equals(fReference3));
-               assertTrue("equals", fReference3.equals(fReference3));
-       }
-       
        public void testEqualsNull() throws Exception {
                assertTrue("equals", !fReference0.equals(null));
                assertTrue("equals", !fReference3.equals(null));
index 1b49c37c08746d98512f9f8d335b7beabcc4129b..dbac78e55f5ac7379687bdf3f7cdc6d39b3ea108 100644 (file)
@@ -113,14 +113,6 @@ public class TmfEventSourceTest extends TestCase {
                assertTrue("equals", fSource0.equals(fSource2));
        }
        
-       public void testEqualsConsistency() throws Exception {
-               assertTrue("equals", fSource0.equals(fSource0));
-               assertTrue("equals", fSource0.equals(fSource0));
-
-               assertTrue("equals", fSource3.equals(fSource3));
-               assertTrue("equals", fSource3.equals(fSource3));
-       }
-       
        public void testEqualsNull() throws Exception {
                assertTrue("equals", !fSource0.equals(null));
                assertTrue("equals", !fSource3.equals(null));
index c463b3dee8d70a2b05d18b147765a236f4e0c7c7..aa4e412e2027724fbe9f12842f71fae2e8b2e2dc 100644 (file)
@@ -179,17 +179,6 @@ public class TmfEventTest extends TestCase {
                assertTrue("equals", event1.equals(event3));
        }
        
-       public void testEqualsConsistency() throws Exception {
-               TmfEvent event1 = new TmfEvent(fEvent1);
-               TmfEvent event2 = new TmfEvent(fEvent2);
-
-               assertTrue("equals", event1.equals(fEvent1));
-               assertTrue("equals", event1.equals(fEvent1));
-
-               assertTrue("equals", event2.equals(fEvent2));
-               assertTrue("equals", event2.equals(fEvent2));
-       }
-       
        public void testEqualsNull() throws Exception {
                assertTrue("equals", !fEvent1.equals(null));
                assertTrue("equals", !fEvent2.equals(null));
index 522d09d4639a139e45ec96ca736b623b3acb0eda..df0eecfbb7797f9387cbd4c8a16171c14085c800 100644 (file)
@@ -172,14 +172,6 @@ public class TmfEventTypeTest extends TestCase {
                assertTrue("equals", fType0.equals(fType2));
        }
        
-       public void testEqualsConsistency() throws Exception {
-               assertTrue("equals", fType0.equals(fType0));
-               assertTrue("equals", fType0.equals(fType0));
-
-               assertTrue("equals", fType3.equals(fType3));
-               assertTrue("equals", fType3.equals(fType3));
-       }
-       
        public void testEqualsNull() throws Exception {
                assertTrue("equals", !fType0.equals(null));
                assertTrue("equals", !fType3.equals(null));
index 81e2e67b25e3f3c6244f455ade5f63b872b77d23..4efb0335c396846291c275b8f9216555a96546ea 100644 (file)
@@ -163,19 +163,6 @@ public class TmfTimeRangeTest extends TestCase {
                assertTrue("equals", range1a.equals(range1c));
        }
        
-       public void testEqualsConsistency() throws Exception {
-               TmfTimestamp ts1 = new TmfTimestamp(12345);
-               TmfTimestamp ts2 = new TmfTimestamp(12350);
-               TmfTimeRange range1a = new TmfTimeRange(ts1, ts2);
-               TmfTimeRange range1b = new TmfTimeRange(ts1, ts2);
-
-               assertTrue("equals", range1a.equals(range1a));
-               assertTrue("equals", range1a.equals(range1a));
-
-               assertTrue("equals", range1b.equals(range1b));
-               assertTrue("equals", range1b.equals(range1b));
-       }
-       
        public void testEqualsNull() throws Exception {
                TmfTimestamp ts1 = new TmfTimestamp(12345);
                TmfTimestamp ts2 = new TmfTimestamp(12350);
index b1700fd91d028a2f99bddfb0ee31e686df9afdaf..fba830d09a3de886dd50430070724b3be0ccd956 100644 (file)
@@ -151,14 +151,6 @@ public class TmfTimestampTest extends TestCase {
                assertTrue("equals", ts1.equals(ts1copy2));
        }
        
-       public void testEqualsConsistency() throws Exception {
-               assertTrue("equals", ts0.equals(ts0copy));
-               assertTrue("equals", ts0.equals(ts0copy));
-               
-               assertTrue("equals", ts1.equals(ts1copy));
-               assertTrue("equals", ts1.equals(ts1copy));
-       }
-       
        public void testEqualsNull() throws Exception {
                assertTrue("equals", !ts0.equals(null));
                assertTrue("equals", !ts1.equals(null));
@@ -186,6 +178,32 @@ public class TmfTimestampTest extends TestCase {
                assertEquals("toString", "[TmfTimestamp(12345,2,5)]",  ts3.toString());
        }
 
+       // ------------------------------------------------------------------------
+       // clone
+       // ------------------------------------------------------------------------
+
+       public class MyTimestamp extends TmfTimestamp {
+               @Override
+               public boolean equals(Object other) {
+                       return super.equals(other);
+               }
+               @Override
+               public MyTimestamp clone() {
+                       return (MyTimestamp) super.clone();
+               }
+       }
+
+       public void testClone() throws Exception {
+               TmfTimestamp timestamp = ts0.clone();
+               assertEquals("clone", timestamp, ts0);
+       }
+
+       public void testClone2() throws Exception {
+               MyTimestamp timestamp = new MyTimestamp();
+               MyTimestamp clone = timestamp.clone();
+               assertEquals("clone", clone, timestamp);
+       }
+
        // ------------------------------------------------------------------------
        // synchronize
        // ------------------------------------------------------------------------
index cdb88b1a1ba796c79e6a59b792e08ba7ddeee82d..104fddca7d46c40acc821a9f311ef78b20289bb5 100644 (file)
@@ -76,7 +76,7 @@ public class TmfExperimentTest extends TestCase {
     private void setupExperiment() {
        if (fExperiment == null) {
             fExperiment = new TmfExperiment<TmfEvent>(TmfEvent.class, EXPERIMENT, fTraces);
-            fExperiment.indexExperiment();
+            fExperiment.indexExperiment(true);
        }
     }
 
@@ -137,7 +137,7 @@ public class TmfExperimentTest extends TestCase {
 
     public void testParseEvent() throws Exception {
 
-       // On lower bound, returns the first event (ts = 1)
+       // On lower bound, returns the first event (ts = 0)
        TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0));
 
        TmfEvent event = fExperiment.parseEvent(context);
index 4d62567007d83c9b8ba5876dbfcc4704e00a270f..0a64504b50f3d8d937edaa240c62d8cbb1bbb14c 100644 (file)
@@ -79,7 +79,7 @@ public class TmfMultiTraceExperimentTest extends TestCase {
     private void setupExperiment() {
        if (fExperiment == null) {
             fExperiment = new TmfExperiment<TmfEvent>(TmfEvent.class, EXPERIMENT, fTrace);
-            fExperiment.indexExperiment();
+            fExperiment.indexExperiment(true);
        }
     }
 
index df9d936ac668f11229503648349b47a636cabe52..3187347c128b52e659a19973ae75c50d07b20052 100644 (file)
@@ -200,14 +200,6 @@ public class TmfCoalescedDataRequestTest extends TestCase {
         assertTrue("equals", fRequest1.equals(fRequest1c));
        }
        
-       public void testEqualsConsistency() throws Exception {
-        assertTrue("equals", fRequest1.equals(fRequest1));
-        assertTrue("equals", fRequest1.equals(fRequest1));
-
-        assertTrue("equals", fRequest2.equals(fRequest2));
-        assertTrue("equals", fRequest2.equals(fRequest2));
-       }
-       
        public void testEqualsNull() throws Exception {
         assertFalse("equals", fRequest1.equals(null));
         assertFalse("equals", fRequest2.equals(null));
index f712b8c6adb08f74a7928cd325525d59df4ab0a4..0b0bd714ddff435ce70398fb5a06ad9e21f021fc 100644 (file)
@@ -221,14 +221,6 @@ public class TmfCoalescedEventRequestTest extends TestCase {
         assertTrue("equals", fRequest1.equals(fRequest1c));
        }
        
-       public void testEqualsConsistency() throws Exception {
-        assertTrue("equals", fRequest1.equals(fRequest1));
-        assertTrue("equals", fRequest1.equals(fRequest1));
-
-        assertTrue("equals", fRequest2.equals(fRequest2));
-        assertTrue("equals", fRequest2.equals(fRequest2));
-       }
-       
        public void testEqualsNull() throws Exception {
         assertFalse("equals", fRequest1.equals(null));
         assertFalse("equals", fRequest2.equals(null));
@@ -465,12 +457,12 @@ public class TmfCoalescedEventRequestTest extends TestCase {
 
     // Initialize the test trace
     private static TmfTraceStub fTrace = null;
-    private TmfTraceStub setupTrace(String path) {
+    private synchronized TmfTraceStub setupTrace(String path) {
        if (fTrace == null) {
                try {
                URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path), null);
                        File test = new File(FileLocator.toFileURL(location).toURI());
-               fTrace = new TmfTraceStub(test.getPath(), 500, true);
+               fTrace = new TmfTraceStub(test.getPath(), 500);
                } catch (URISyntaxException e) {
                        e.printStackTrace();
                } catch (IOException e) {
index 78bba7d15f370d96672fac4cc38f77ae420a923f..33c332598d60ae457f7acf1d6a272f567bc00e60 100644 (file)
@@ -195,14 +195,6 @@ public class TmfDataRequestTest extends TestCase {
         assertTrue("equals", fRequest1.equals(fRequest1c));
        }
        
-       public void testEqualsConsistency() throws Exception {
-        assertTrue("equals", fRequest1.equals(fRequest1));
-        assertTrue("equals", fRequest1.equals(fRequest1));
-
-        assertTrue("equals", fRequest2.equals(fRequest2));
-        assertTrue("equals", fRequest2.equals(fRequest2));
-       }
-       
        public void testEqualsNull() throws Exception {
         assertFalse("equals", fRequest1.equals(null));
         assertFalse("equals", fRequest2.equals(null));
index fa31550b317875f67d48790745c64ed7b6126203..189bd32ad5189337272276e74d0f56db3bf082f9 100644 (file)
@@ -215,14 +215,6 @@ public class TmfEventRequestTest extends TestCase {
         assertTrue("equals", fRequest1.equals(fRequest1c));
        }
        
-       public void testEqualsConsistency() throws Exception {
-        assertTrue("equals", fRequest1.equals(fRequest1));
-        assertTrue("equals", fRequest1.equals(fRequest1));
-
-        assertTrue("equals", fRequest2.equals(fRequest2));
-        assertTrue("equals", fRequest2.equals(fRequest2));
-       }
-       
        public void testEqualsNull() throws Exception {
         assertFalse("equals", fRequest1.equals(null));
         assertFalse("equals", fRequest2.equals(null));
index 31e54c9fb9f1684db8cf00bea2d1c8e029557bcc..f96348ccfe6cbb9964bab9f7bf79e0e3fe306e6b 100644 (file)
@@ -59,10 +59,6 @@ public class TmfRequestExecutorTest extends TestCase {
         */
        public void testTmfRequestExecutor() {
                TmfRequestExecutor executor = new TmfRequestExecutor();
-               assertTrue("TmfRequestExecutor", executor != null);
-               assertTrue("TmfRequestExecutor", executor instanceof TmfRequestExecutor);
-//             assertEquals("toString", "[TmfRequestExecutor(DelegatedExecutorService)]", executor.toString());
-
                assertEquals("nbPendingRequests", 0, executor.getNbPendingRequests());
                assertFalse("isShutdown",   executor.isShutdown());
                assertFalse("isTerminated", executor.isTerminated());
@@ -73,10 +69,6 @@ public class TmfRequestExecutorTest extends TestCase {
         */
        public void testTmfRequestExecutorExecutorService() {
                TmfRequestExecutor executor = new TmfRequestExecutor(Executors.newCachedThreadPool());
-               assertTrue("TmfRequestExecutor", executor != null);
-               assertTrue("TmfRequestExecutor", executor instanceof TmfRequestExecutor);
-//             assertEquals("toString", "[TmfRequestExecutor(ThreadPoolExecutor)]", executor.toString());
-
                assertEquals("nbPendingRequests", 0, executor.getNbPendingRequests());
                assertFalse("isShutdown",   executor.isShutdown());
                assertFalse("isTerminated", executor.isTerminated());
@@ -93,11 +85,32 @@ public class TmfRequestExecutorTest extends TestCase {
                assertTrue("isTerminated", executor.isTerminated());
        }
 
-//     /**
-//      * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#execute(java.lang.Runnable)}.
-//      */
-//     public void testExecute() {
+       // ------------------------------------------------------------------------
+       // execute
+       // ------------------------------------------------------------------------
+
+       /**
+        * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#execute(java.lang.Runnable)}.
+        */
+       public void testExecute() {
 //             fail("Not yet implemented");
-//     }
+       }
+
+       // ------------------------------------------------------------------------
+       // toString
+       // ------------------------------------------------------------------------
+
+       /**
+        * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#toString()}.
+        */
+       public void testToString() {
+               TmfRequestExecutor executor1 = new TmfRequestExecutor();
+               String expected1 = "[TmfRequestExecutor(DelegatedExecutorService)]";
+               assertEquals("toString", expected1, executor1.toString());
+
+               TmfRequestExecutor executor2 = new TmfRequestExecutor(Executors.newCachedThreadPool());
+               String expected2 = "[TmfRequestExecutor(ThreadPoolExecutor)]";
+               assertEquals("toString", expected2, executor2.toString());
+       }
 
 }
index a7a2646c9dac086235b8a64f138ab6c3e4da9b09..f228496b0b76143a3881aa487a95043693702fcc 100644 (file)
@@ -10,9 +10,10 @@ public class AllTests {
        public static Test suite() {
                TestSuite suite = new TestSuite("Test suite for " + TmfCorePlugin.PLUGIN_ID + ".trace"); //$NON-NLS-1$);
                //$JUnit-BEGIN$
+               suite.addTestSuite(TmfLocationTest.class);
+               suite.addTestSuite(TmfCheckpointTest.class);
+               suite.addTestSuite(TmfContextTest.class);
                suite.addTestSuite(TmfTraceTest.class);
-               suite.addTestSuite(TmfExperimentTest.class);
-               suite.addTestSuite(TmfMultiTraceExperimentTest.class);
                //$JUnit-END$
                return suite;
        }
index f5e0d9a13152a7b185c5471ccfa69dd6bd88c87d..54550ed484b3b7f0e62e9920814e6531f7dcf694 100644 (file)
@@ -73,7 +73,7 @@ public class TmfContextTest extends TestCase {
        public void testTmfContextDefault() {
                TmfContext context = new TmfContext();
                assertEquals("getLocation", null, context.getLocation());
-               assertEquals("getRank", TmfContext.UNKNOWN_RANK, context.getRank());
+               assertEquals("getRank",        0, context.getRank());
        }
 
        public void testTmfContextNoRank() {
@@ -85,9 +85,9 @@ public class TmfContextTest extends TestCase {
                assertEquals("getLocation", fLocation2, context2.getLocation());
                assertEquals("getLocation", fLocation3, context3.getLocation());
 
-               assertEquals("getRank", TmfContext.UNKNOWN_RANK, context1.getRank());
-               assertEquals("getRank", TmfContext.UNKNOWN_RANK, context2.getRank());
-               assertEquals("getRank", TmfContext.UNKNOWN_RANK, context3.getRank());
+               assertEquals("getRank", 0, context1.getRank());
+               assertEquals("getRank", 0, context2.getRank());
+               assertEquals("getRank", 0, context3.getRank());
        }
 
        public void testTmfContext() {
diff --git a/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfMultiTraceExperimentTest.java b/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfMultiTraceExperimentTest.java
deleted file mode 100644 (file)
index bb355c0..0000000
+++ /dev/null
@@ -1,639 +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.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.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
-import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
-import org.eclipse.linuxtools.tmf.experiment.TmfExperiment;
-import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
-import org.eclipse.linuxtools.tmf.tests.TmfCoreTestPlugin;
-import org.eclipse.linuxtools.tmf.trace.ITmfTrace;
-import org.eclipse.linuxtools.tmf.trace.TmfContext;
-import org.eclipse.linuxtools.tmf.trace.TmfTraceStub;
-
-/**
- * <b><u>TmfExperimentTest</u></b>
- * <p>
- * TODO: Implement me. Please.
- */
-public class TmfMultiTraceExperimentTest extends TestCase {
-
-    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    fDefaultBlockSize  = 1000;
-
-    private static ITmfTrace[] fTrace;
-    private static TmfExperiment<TmfEvent> fExperiment;
-
-    private static byte SCALE = (byte) -3;
-
-    // ------------------------------------------------------------------------
-    // Housekeeping
-    // ------------------------------------------------------------------------
-
-    private ITmfTrace[] setupTrace(String path1, String path2) {
-       if (fTrace == null) {
-               fTrace = new ITmfTrace[2];
-               try {
-               URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path1), null);
-                       File test = new File(FileLocator.toFileURL(location).toURI());
-                       TmfTraceStub trace1 = new TmfTraceStub(test.getPath(), true);
-                       fTrace[0] = trace1;
-               location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path2), null);
-                       test = new File(FileLocator.toFileURL(location).toURI());
-                       TmfTraceStub trace2 = new TmfTraceStub(test.getPath(), true);
-                       fTrace[1] = trace2;
-               } catch (URISyntaxException e) {
-                       e.printStackTrace();
-               } catch (IOException e) {
-                       e.printStackTrace();
-               }
-       }
-       return fTrace;
-    }
-
-    private void setupExperiment() {
-       if (fExperiment == null) {
-            fExperiment = new TmfExperiment<TmfEvent>(TmfEvent.class, EXPERIMENT, fTrace);
-            fExperiment.indexExperiment(true);
-       }
-    }
-
-       public TmfMultiTraceExperimentTest(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);
-               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());
-
-        TmfTimeRange timeRange = fExperiment.getTimeRange();
-        assertEquals("getStartTime", 1, timeRange.getStartTime().getValue());
-        assertEquals("getEndTime", NB_EVENTS, timeRange.getEndTime().getValue());
-       }
-
-    // ------------------------------------------------------------------------
-    // parseEvent - make sure parseEvent doesn't update the context
-    // ------------------------------------------------------------------------
-
-    public void testParseEvent() throws Exception {
-
-       // On lower bound, returns the first event (ts = 0)
-       TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0));
-
-       TmfEvent event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-
-        event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-
-        event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-
-        for (int i = 1; i < 20; i++) {
-            event = fExperiment.getNextEvent(context);
-            assertEquals("Event timestamp", i, event.getTimestamp().getValue());
-        }
-
-        event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 20, event.getTimestamp().getValue());
-
-        event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 20, event.getTimestamp().getValue());
-    }
-
-    // ------------------------------------------------------------------------
-    // getNextEvent - updates the context
-    // ------------------------------------------------------------------------
-
-    public void testGetNextEvent() throws Exception {
-
-       // On lower bound, returns the first event (ts = 0)
-       TmfContext context = fExperiment.seekEvent(new TmfTimestamp(0, SCALE, 0));
-        TmfEvent event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-
-        for (int i = 2; i < 20; i++) {
-            event = fExperiment.getNextEvent(context);
-            assertEquals("Event timestamp", i, event.getTimestamp().getValue());
-        }
-    }
-
-    // ------------------------------------------------------------------------
-    // seekLocation
-    // Note: seekLocation() does not reliably set the rank
-    // ------------------------------------------------------------------------
-
-    public void testSeekLocationOnCacheBoundary() throws Exception {
-
-       // Position trace at event rank 0
-       TmfContext context = fExperiment.seekLocation(null);
-//        assertEquals("Event rank", 0, context.getRank());
-       TmfEvent event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 0, context.getRank());
-       event = fExperiment.getNextEvent(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.seekLocation(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.getNextEvent(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.seekLocation(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.getNextEvent(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.seekLocation(tmpContext.getLocation().clone());
-//        assertEquals("Event rank", 9, context.getRank());
-       TmfEvent event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 9, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event 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.seekLocation(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.getNextEvent(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.seekLocation(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.getNextEvent(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.seekLocation(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.getNextEvent(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.seekLocation(null);
-        TmfContext context = fExperiment.seekLocation(tmpContext.getLocation().clone());
-//        assertEquals("Event rank", 0, context.getRank());
-       TmfEvent event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 0, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event 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.seekLocation(tmpContext.getLocation().clone());
-//        assertEquals("Event rank", NB_EVENTS, context.getRank());
-       event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", null, event);
-//        assertEquals("Event rank", NB_EVENTS, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", null, event);
-//        assertEquals("Event rank", NB_EVENTS, context.getRank());
-    }
-
-    // ------------------------------------------------------------------------
-    // 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());
-       TmfEvent event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-        assertEquals("Event rank", 0, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1, context.getRank());
-
-       // Position trace at event rank 1000
-        context = fExperiment.seekEvent(new TmfTimestamp(1001, SCALE, 0));
-        assertEquals("Event rank", 1000, context.getRank());
-       event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1001, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1000, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 1001, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1001, context.getRank());
-
-       // Position trace at event rank 4000
-        context = fExperiment.seekEvent(new TmfTimestamp(4001, SCALE, 0));
-        assertEquals("Event rank", 4000, context.getRank());
-       event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 4001, event.getTimestamp().getValue());
-        assertEquals("Event rank", 4000, context.getRank());
-       event = fExperiment.getNextEvent(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());
-       TmfEvent event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 2, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 2, event.getTimestamp().getValue());
-        assertEquals("Event rank", 2, context.getRank());
-
-       // Position trace at event rank 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.getNextEvent(context);
-        assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
-        assertEquals("Event rank", 10, context.getRank());
-
-       // Position trace at event rank 999
-        context = fExperiment.seekEvent(new TmfTimestamp(1000, SCALE, 0));
-        assertEquals("Event rank", 999, context.getRank());
-       event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
-        assertEquals("Event rank", 999, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1000, context.getRank());
-
-       // Position trace at event rank 1001
-        context = fExperiment.seekEvent(new TmfTimestamp(1002, SCALE, 0));
-        assertEquals("Event rank", 1001, context.getRank());
-       event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1001, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1002, context.getRank());
-
-       // Position trace at event rank 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.getNextEvent(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());
-       TmfEvent event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-        assertEquals("Event rank", 0, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1, context.getRank());
-
-       // Position trace at event passed the end
-        context = fExperiment.seekEvent(new TmfTimestamp(NB_EVENTS + 1, SCALE, 0));
-        assertEquals("Event rank", NB_EVENTS, context.getRank());
-       event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", null, event);
-        assertEquals("Event rank", NB_EVENTS, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", null, event);
-        assertEquals("Event rank", NB_EVENTS, context.getRank());
-    }
-
-    // ------------------------------------------------------------------------
-    // 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());
-       TmfEvent event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-        assertEquals("Event rank", 0, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1, context.getRank());
-
-       // Position trace at event rank 1000
-        context = fExperiment.seekEvent(1000);
-        assertEquals("Event rank", 1000, context.getRank());
-       event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1001, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1000, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 1001, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1001, context.getRank());
-
-       // Position trace at event rank 4000
-        context = fExperiment.seekEvent(4000);
-        assertEquals("Event rank", 4000, context.getRank());
-       event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 4001, event.getTimestamp().getValue());
-        assertEquals("Event rank", 4000, context.getRank());
-       event = fExperiment.getNextEvent(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());
-       TmfEvent event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
-        assertEquals("Event rank", 9, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
-        assertEquals("Event rank", 10, context.getRank());
-
-       // Position trace at event rank 999
-        context = fExperiment.seekEvent(999);
-        assertEquals("Event rank", 999, context.getRank());
-       event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
-        assertEquals("Event rank", 999, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1000, context.getRank());
-
-       // Position trace at event rank 1001
-        context = fExperiment.seekEvent(1001);
-        assertEquals("Event rank", 1001, context.getRank());
-       event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1001, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1002, context.getRank());
-
-       // Position trace at event rank 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.getNextEvent(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());
-       TmfEvent event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-        assertEquals("Event rank", 0, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-        assertEquals("Event rank", 1, context.getRank());
-
-       // Position trace at event passed the end
-        context = fExperiment.seekEvent(NB_EVENTS);
-        assertEquals("Event rank", NB_EVENTS, context.getRank());
-       event = fExperiment.parseEvent(context);
-        assertEquals("Event timestamp", null, event);
-        assertEquals("Event rank", NB_EVENTS, context.getRank());
-       event = fExperiment.getNextEvent(context);
-        assertEquals("Event timestamp", null, event);
-        assertEquals("Event rank", NB_EVENTS, context.getRank());
-    }
-    
-    // ------------------------------------------------------------------------
-    // processRequest
-    // ------------------------------------------------------------------------
-
-    public void testProcessRequestForNbEvents() throws Exception {
-        final int blockSize = 100;
-        final int nbEvents  = 1000;
-        final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
-
-        TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
-        final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
-        };
-        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>();
-
-        TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
-        final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
-        };
-        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>();
-        long nbExpectedEvents = fExperiment.getNbEvents();
-
-        TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
-        final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
-        };
-        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>();
-
-        TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
-        final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-                // Cancel request after the first chunk is received
-                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
index d9600f700f9bcf22fcc66a5d05a80b67eced2b8e..f5b51aab43323409b7bec1707caff48f87648d4b 100644 (file)
@@ -29,19 +29,26 @@ import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
 import org.eclipse.linuxtools.tmf.tests.TmfCoreTestPlugin;
+import org.eclipse.linuxtools.tmf.trace.ITmfContext;
 import org.eclipse.linuxtools.tmf.trace.TmfCheckpoint;
 import org.eclipse.linuxtools.tmf.trace.TmfContext;
+import org.eclipse.linuxtools.tmf.trace.TmfTrace;
 import org.eclipse.linuxtools.tmf.trace.TmfTraceStub;
 
 /**
  * <b><u>TmfTraceTest</u></b>
  * <p>
- * TODO: Implement me. Please.
+ * Test suite for the TmfTrace class.
  */
 public class TmfTraceTest extends TestCase {
 
+       // ------------------------------------------------------------------------
+       // Variables
+       // ------------------------------------------------------------------------
+
     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    NB_EVENTS   = 10000;
     private static TmfTraceStub fTrace      = null;
 
@@ -51,12 +58,34 @@ public class TmfTraceTest extends TestCase {
     // Housekeeping
     // ------------------------------------------------------------------------
 
+    public TmfTraceTest(String name) throws Exception {
+               super(name);
+       }
+
+       @Override
+       protected void setUp() throws Exception {
+               super.setUp();  
+               fTrace = setupTrace(DIRECTORY + File.separator + TEST_STREAM);
+       }
+
+       @Override
+       protected void tearDown() throws Exception {
+               super.tearDown();
+               fTrace.dispose();
+               fTrace = null;
+       }
+
+    // ------------------------------------------------------------------------
+    // Helper functions
+    // ------------------------------------------------------------------------
+
     private TmfTraceStub setupTrace(String path) {
        if (fTrace == null) {
                try {
                URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path), null);
                        File test = new File(FileLocator.toFileURL(location).toURI());
-               fTrace = new TmfTraceStub(test.getPath(), 500, true);
+               fTrace = new TmfTraceStub(test.getPath(), BLOCK_SIZE, false);
+               fTrace.indexTrace(true);
                } catch (URISyntaxException e) {
                        e.printStackTrace();
                } catch (IOException e) {
@@ -66,53 +95,123 @@ public class TmfTraceTest extends TestCase {
        return fTrace;
     }
 
-    public TmfTraceTest(String name) throws Exception {
-               super(name);
-       }
-
-       @Override
-       protected void setUp() throws Exception {
-               super.setUp();
-               setupTrace(DIRECTORY + File.separator + TEST_STREAM);
-       }
-
-       @Override
-       protected void tearDown() throws Exception {
-               super.tearDown();
-       }
-
     // ------------------------------------------------------------------------
     // Constructors
     // ------------------------------------------------------------------------
 
     public void testTmfTraceDefault() throws Exception {
                TmfTraceStub trace = null;
+               File testfile = null;
                try {
                URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(DIRECTORY + File.separator + TEST_STREAM), null);
-                       File test = new File(FileLocator.toFileURL(location).toURI());
-                       trace = new TmfTraceStub(test.getPath(), true);
+                       testfile = new File(FileLocator.toFileURL(location).toURI());
+                       trace = new TmfTraceStub(testfile.getPath());
                } catch (URISyntaxException e) {
-                       e.printStackTrace();
+                       fail("URISyntaxException");
                } catch (IOException e) {
-                       e.printStackTrace();
+                       fail("IOException");
                }
-               assertTrue("Open trace",     trace != null);
-               assertEquals("getCacheSize", TmfTraceStub.DEFAULT_CACHE_SIZE, trace.getCacheSize());
-        assertEquals("getTraceSize", NB_EVENTS, trace.getNbEvents());
+               assertTrue  ("Open trace",   trace != null);
+               assertEquals("getType",      TmfEvent.class, trace.getType());
+               assertEquals("getPath",      testfile.getPath(), trace.getPath());
+               assertEquals("getName",      TEST_STREAM, trace.getName());
+               assertEquals("getCacheSize", TmfTrace.DEFAULT_CACHE_SIZE, trace.getCacheSize());
+    }
+
+    public void testTmfTraceDefaultCacheSize() throws Exception {
+               TmfTraceStub trace = null;
+               File testfile = null;
+               try {
+               URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(DIRECTORY + File.separator + TEST_STREAM), null);
+                       testfile = new File(FileLocator.toFileURL(location).toURI());
+                       trace = new TmfTraceStub(testfile.getPath(), 0);
+               } catch (URISyntaxException e) {
+                       fail("URISyntaxException");
+               } catch (IOException e) {
+                       fail("IOException");
+               }
+               assertTrue  ("Open trace",   trace != null);
+               assertEquals("getType",      TmfEvent.class, trace.getType());
+               assertEquals("getPath",      testfile.getPath(), trace.getPath());
+               assertEquals("getName",      TEST_STREAM, trace.getName());
+               assertEquals("getCacheSize", TmfTrace.DEFAULT_CACHE_SIZE, trace.getCacheSize());
     }
 
     public void testTmfTrace() throws Exception {
-        assertEquals("getCacheSize",   500, fTrace.getCacheSize());
-        assertEquals("getTraceSize",   NB_EVENTS, fTrace.getNbEvents());
-        assertEquals("getRange-start", 1, fTrace.getTimeRange().getStartTime().getValue());
-        assertEquals("getRange-end",   NB_EVENTS, fTrace.getTimeRange().getEndTime().getValue());
+               assertEquals("getType",      TmfEvent.class, fTrace.getType());
+               assertEquals("getName",      TEST_STREAM,    fTrace.getName());
+               assertEquals("getCacheSize", BLOCK_SIZE,     fTrace.getCacheSize());
+    }
+
+    public void testClone() throws Exception {
+       TmfTraceStub trace = fTrace.clone();
+               assertEquals("getType",      TmfEvent.class,        trace.getType());
+               assertEquals("getPath",      fTrace.getPath(),      trace.getPath());
+               assertEquals("getName",      TEST_STREAM,           trace.getName());
+               assertEquals("getCacheSize", BLOCK_SIZE,            trace.getCacheSize());
+               assertEquals("getTimeRange", fTrace.getTimeRange(), trace.getTimeRange());
     }
 
+    // ------------------------------------------------------------------------
+    // Get/Set time range
+    // ------------------------------------------------------------------------
+
+    public void testSetTimeRange() throws Exception {
+       TmfTraceStub trace = fTrace.clone();
+       
+        assertEquals("getRange-start", 1,         trace.getTimeRange().getStartTime().getValue());
+        assertEquals("getRange-end",   NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
+        assertEquals("getStartTime",   1,         trace.getStartTime().getValue());
+        assertEquals("getEndTime",     NB_EVENTS, trace.getEndTime().getValue());
+
+        trace.setTimeRange(new TmfTimeRange(new TmfTimestamp(100), new TmfTimestamp(200)));
+        assertEquals("setTimeRange",   100, trace.getTimeRange().getStartTime().getValue());
+        assertEquals("setTimeRange",   200, trace.getTimeRange().getEndTime().getValue());
+        assertEquals("setTimeRange",   100, trace.getStartTime().getValue());
+        assertEquals("setTimeRange",   200, trace.getEndTime().getValue());
+    }
+    
+    public void testSetStartTime() throws Exception {
+       TmfTraceStub trace = fTrace.clone();
+       
+        assertEquals("getRange-start", 1,         trace.getTimeRange().getStartTime().getValue());
+        assertEquals("getRange-end",   NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
+        assertEquals("getStartTime",   1,         trace.getStartTime().getValue());
+        assertEquals("getEndTime",     NB_EVENTS, trace.getEndTime().getValue());
+
+        trace.setStartTime(new TmfTimestamp(100));
+        assertEquals("setStartTime",   100,       trace.getTimeRange().getStartTime().getValue());
+        assertEquals("setStartTime",   NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
+        assertEquals("setStartTime",   100,       trace.getStartTime().getValue());
+        assertEquals("setStartTime",   NB_EVENTS, trace.getEndTime().getValue());
+    }
+    
+    public void testSetEndTime() throws Exception {
+       TmfTraceStub trace = fTrace.clone();
+       
+        assertEquals("getRange-start", 1,         trace.getTimeRange().getStartTime().getValue());
+        assertEquals("getRange-end",   NB_EVENTS, trace.getTimeRange().getEndTime().getValue());
+        assertEquals("getStartTime",   1,         trace.getStartTime().getValue());
+        assertEquals("getEndTime",     NB_EVENTS, trace.getEndTime().getValue());
+
+        trace.setEndTime(new TmfTimestamp(100));
+        assertEquals("setEndTime",     1,   trace.getTimeRange().getStartTime().getValue());
+        assertEquals("setEndTime",     100, trace.getTimeRange().getEndTime().getValue());
+        assertEquals("setEndTime",     1,   trace.getStartTime().getValue());
+        assertEquals("setEndTime",     100, trace.getEndTime().getValue());
+    }
+    
     // ------------------------------------------------------------------------
     // Verify checkpoints
     // ------------------------------------------------------------------------
 
-    public void testValidateCheckpoints() throws Exception {
+    public void testTmfTraceIndexing() throws Exception {
+        assertEquals("getCacheSize",   BLOCK_SIZE, fTrace.getCacheSize());
+        assertEquals("getTraceSize",   NB_EVENTS,  fTrace.getNbEvents());
+        assertEquals("getRange-start", 1,          fTrace.getTimeRange().getStartTime().getValue());
+        assertEquals("getRange-end",   NB_EVENTS,  fTrace.getTimeRange().getEndTime().getValue());
+        assertEquals("getStartTime",   1,          fTrace.getStartTime().getValue());
+        assertEquals("getEndTime",     NB_EVENTS,  fTrace.getEndTime().getValue());
 
        Vector<TmfCheckpoint> checkpoints = fTrace.getCheckpoints();
        int pageSize = fTrace.getCacheSize();
@@ -184,35 +283,35 @@ public class TmfTraceTest extends TestCase {
 
        // Position trace at event rank 0
        TmfContext context = fTrace.seekLocation(null);
-//        assertEquals("Event rank", 0, context.getRank());
+        assertEquals("Event rank", 0, context.getRank());
        TmfEvent event = fTrace.parseEvent(context);
         assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 0, context.getRank());
+        assertEquals("Event rank", 0, context.getRank());
        event = fTrace.getNextEvent(context);
         assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 1, context.getRank());
+        assertEquals("Event rank", 1, context.getRank());
 
        // Position trace at event rank 1000
         TmfContext tmpContext = fTrace.seekEvent(new TmfTimestamp(1001, SCALE, 0));
         context = fTrace.seekLocation(tmpContext.getLocation().clone());
-//        assertEquals("Event rank", 1000, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        event = fTrace.parseEvent(context);
         assertEquals("Event timestamp", 1001, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 1000, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        event = fTrace.getNextEvent(context);
         assertEquals("Event timestamp", 1001, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 1001, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
 
        // Position trace at event rank 4000
         tmpContext = fTrace.seekEvent(new TmfTimestamp(4001, SCALE, 0));
         context = fTrace.seekLocation(tmpContext.getLocation().clone());
-//        assertEquals("Event rank", 4000, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        event = fTrace.parseEvent(context);
         assertEquals("Event timestamp", 4001, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 4000, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        event = fTrace.getNextEvent(context);
         assertEquals("Event timestamp", 4001, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 4001, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
     }
 
     public void testSeekLocationNotOnCacheBoundary() throws Exception {
@@ -220,46 +319,46 @@ public class TmfTraceTest extends TestCase {
        // Position trace at event rank 9
        TmfContext tmpContext = fTrace.seekEvent(new TmfTimestamp(10, SCALE, 0));
         TmfContext context = fTrace.seekLocation(tmpContext.getLocation().clone());
-//        assertEquals("Event rank", 9, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        TmfEvent event = fTrace.parseEvent(context);
         assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 9, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        event = fTrace.getNextEvent(context);
         assertEquals("Event timestamp", 10, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 10, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
 
        // Position trace at event rank 999
         tmpContext = fTrace.seekEvent(new TmfTimestamp(1000, SCALE, 0));
         context = fTrace.seekLocation(tmpContext.getLocation().clone());
-//        assertEquals("Event rank", 999, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        event = fTrace.parseEvent(context);
         assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 999, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        event = fTrace.getNextEvent(context);
         assertEquals("Event timestamp", 1000, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 1000, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
 
        // Position trace at event rank 1001
         tmpContext = fTrace.seekEvent(new TmfTimestamp(1002, SCALE, 0));
         context = fTrace.seekLocation(tmpContext.getLocation().clone());
-//        assertEquals("Event rank", 1001, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        event = fTrace.parseEvent(context);
         assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 1001, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        event = fTrace.getNextEvent(context);
         assertEquals("Event timestamp", 1002, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 1002, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
 
        // Position trace at event rank 4500
         tmpContext = fTrace.seekEvent(new TmfTimestamp(4501, SCALE, 0));
         context = fTrace.seekLocation(tmpContext.getLocation().clone());
-//        assertEquals("Event rank", 4500, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        event = fTrace.parseEvent(context);
         assertEquals("Event timestamp", 4501, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 4500, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        event = fTrace.getNextEvent(context);
         assertEquals("Event timestamp", 4501, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 4501, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
     }
 
     public void testSeekLocationOutOfScope() throws Exception {
@@ -267,24 +366,24 @@ public class TmfTraceTest extends TestCase {
        // Position trace at beginning
        TmfContext tmpContext = fTrace.seekLocation(null);
         TmfContext context = fTrace.seekLocation(tmpContext.getLocation().clone());
-//        assertEquals("Event rank", 0, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        TmfEvent event = fTrace.parseEvent(context);
         assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 0, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
        event = fTrace.getNextEvent(context);
         assertEquals("Event timestamp", 1, event.getTimestamp().getValue());
-//        assertEquals("Event rank", 1, context.getRank());
+        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.seekLocation(tmpContext.getLocation().clone());
-//        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.getNextEvent(context);
         assertEquals("Event timestamp", null, event);
-//        assertEquals("Event rank", NB_EVENTS, context.getRank());
+        assertEquals("Event rank", ITmfContext.UNKNOWN_RANK, context.getRank());
     }
 
     // ------------------------------------------------------------------------
@@ -597,31 +696,4 @@ public class TmfTraceTest extends TestCase {
         assertTrue("isCancelled", request.isCancelled());
     }
 
-//    // ------------------------------------------------------------------------
-//    // getRank
-//    // ------------------------------------------------------------------------
-//
-//    public void testGetRank() throws Exception {
-//        assertEquals("getRank",    0, fTrace.getRank(new TmfTimestamp()));
-//        assertEquals("getRank",    0, fTrace.getRank(new TmfTimestamp(   1, (byte) -3)));
-//        assertEquals("getRank",   10, fTrace.getRank(new TmfTimestamp(  11, (byte) -3)));
-//        assertEquals("getRank",  100, fTrace.getRank(new TmfTimestamp( 101, (byte) -3)));
-//        assertEquals("getRank", 1000, fTrace.getRank(new TmfTimestamp(1001, (byte) -3)));
-//        assertEquals("getRank", 2000, fTrace.getRank(new TmfTimestamp(2001, (byte) -3)));
-//        assertEquals("getRank", 2500, fTrace.getRank(new TmfTimestamp(2501, (byte) -3)));
-//    }
-//
-//    // ------------------------------------------------------------------------
-//    // getTimestamp
-//    // ------------------------------------------------------------------------
-//
-//    public void testGetTimestamp() throws Exception {
-//        assertTrue("getTimestamp", fTrace.getTimestamp(   0).equals(new TmfTimestamp(   1, (byte) -3)));
-//        assertTrue("getTimestamp", fTrace.getTimestamp(  10).equals(new TmfTimestamp(  11, (byte) -3)));
-//        assertTrue("getTimestamp", fTrace.getTimestamp( 100).equals(new TmfTimestamp( 101, (byte) -3)));
-//        assertTrue("getTimestamp", fTrace.getTimestamp(1000).equals(new TmfTimestamp(1001, (byte) -3)));
-//        assertTrue("getTimestamp", fTrace.getTimestamp(2000).equals(new TmfTimestamp(2001, (byte) -3)));
-//        assertTrue("getTimestamp", fTrace.getTimestamp(2500).equals(new TmfTimestamp(2501, (byte) -3)));
-//    }
-
 }
\ No newline at end of file
index dceb3174d3638b443148906d1ed43a661074f668..ca5523c525f1902aa4b9bf5c96de8491f414c103 100644 (file)
@@ -17,6 +17,8 @@ import java.io.IOException;
 import java.io.RandomAccessFile;
 
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
+import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
+import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.parser.ITmfEventParser;
 
 /**
@@ -31,10 +33,10 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> {
     // ------------------------------------------------------------------------
 
     // The actual stream
-    private final RandomAccessFile fTrace;
+    private RandomAccessFile fTrace;
 
     // The associated event parser
-    private final ITmfEventParser fParser;
+    private ITmfEventParser fParser;
 
     // ------------------------------------------------------------------------
     // Constructors
@@ -45,7 +47,9 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> {
      * @throws FileNotFoundException
      */
     public TmfTraceStub(String filename) throws FileNotFoundException {
-        this(filename, DEFAULT_CACHE_SIZE, false);
+        super(TmfEvent.class, filename);
+        fTrace  = new RandomAccessFile(filename, "r");
+        fParser = new TmfEventParserStub();
     }
 
     /**
@@ -59,35 +63,58 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> {
 
     /**
      * @param filename
+     * @param waitForCompletion
      * @throws FileNotFoundException
      */
     public TmfTraceStub(String filename, boolean waitForCompletion) throws FileNotFoundException {
         this(filename, DEFAULT_CACHE_SIZE, waitForCompletion);
     }
     
-    public ITmfTrace createTraceCopy() {
-               ITmfTrace returnedValue = null;
-               try {
-                       returnedValue = new TmfTraceStub(this.getName());
-               }
-               catch (FileNotFoundException e) {
-                       e.printStackTrace();
-               }
-               return returnedValue;
-       }
-    
     /**
      * @param filename
      * @param cacheSize
+     * @param waitForCompletion
      * @throws FileNotFoundException
      */
     public TmfTraceStub(String filename, int cacheSize, boolean waitForCompletion) throws FileNotFoundException {
         super(TmfEvent.class, filename, cacheSize);
         fTrace = new RandomAccessFile(filename, "r");
         fParser = new TmfEventParserStub();
-        indexTrace(waitForCompletion);
     }
 
+//    /**
+//     * @param other
+//     */
+//    public TmfTraceStub(TmfTraceStub other) {
+//        this(filename, DEFAULT_CACHE_SIZE, waitForCompletion);
+//    }
+    
+    /**
+     */
+    @Override
+       public TmfTraceStub clone() {
+       TmfTraceStub clone = null;
+               try {
+                       clone = (TmfTraceStub) super.clone();
+               clone.fTrace  = new RandomAccessFile(getName(), "r");
+               clone.fParser = new TmfEventParserStub();
+               } catch (CloneNotSupportedException e) {
+               } catch (FileNotFoundException e) {
+               }
+       return clone;
+    }
+    public ITmfTrace createTraceCopy() {
+               ITmfTrace returnedValue = null;
+               try {
+                       returnedValue = new TmfTraceStub(this.getName());
+               }
+               catch (FileNotFoundException e) {
+                       e.printStackTrace();
+               }
+               return returnedValue;
+       }
+    
     // ------------------------------------------------------------------------
     // Accessors
     // ------------------------------------------------------------------------
@@ -107,11 +134,16 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> {
                synchronized(fTrace) {
                        // Position the trace at the requested location and
                        // returns the corresponding context
-                       long loc = (location != null) ? ((TmfLocation<Long>) location).getLocation() : 0;
+                       long loc  = 0;
+                       long rank = 0;
+                       if (location != null) {
+                               loc = ((TmfLocation<Long>) location).getLocation();
+                               rank = ITmfContext.UNKNOWN_RANK;
+                       }
                        if (loc != fTrace.getFilePointer()) {
                                fTrace.seek(loc);
                        }
-                       TmfContext context = new TmfContext(getCurrentLocation(), 0);
+                       TmfContext context = new TmfContext(getCurrentLocation(), rank);
                        return context;
                }
                } catch (IOException e) {
@@ -143,4 +175,19 @@ public class TmfTraceStub extends TmfTrace<TmfEvent> {
                return null;
        }
 
+       @Override
+       public void setTimeRange(TmfTimeRange range) {
+       super.setTimeRange(range);
+    }
+
+       @Override
+       public void setStartTime(TmfTimestamp startTime) {
+       super.setStartTime(startTime);
+    }
+
+       @Override
+       public void setEndTime(TmfTimestamp endTime) {
+       super.setEndTime(endTime);
+    }
+
 }
\ No newline at end of file
index 19b06097e8af08826c416022d9d47a6d15ca4375..99ac6f41b847b4e72c64e0f2a0f9242a80508682 100644 (file)
@@ -15,9 +15,9 @@ package org.eclipse.linuxtools.tmf.ui.views;
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.experiment.TmfExperiment;
-import org.eclipse.linuxtools.tmf.experiment.TmfExperimentSelectedSignal;
-import org.eclipse.linuxtools.tmf.experiment.TmfExperimentUpdatedSignal;
 import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
+import org.eclipse.linuxtools.tmf.signal.TmfExperimentSelectedSignal;
+import org.eclipse.linuxtools.tmf.signal.TmfExperimentUpdatedSignal;
 import org.eclipse.linuxtools.tmf.signal.TmfSignalHandler;
 import org.eclipse.linuxtools.tmf.signal.TmfTimeSynchSignal;
 import org.eclipse.swt.SWT;
index 8879c147836f5d086a40ccf78b0dbd05aaa9057e..3f318726d5707e6b4516d75a49358d3b20f1be87 100644 (file)
@@ -95,6 +95,10 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
                return fQueueSize;
        }
 
+       public Class<?> getType() {
+               return fType;
+       }
+
        // ------------------------------------------------------------------------
        // ITmfRequestHandler
        // ------------------------------------------------------------------------
index bb6769aeda215a9041aa45c705301f365402dbd2..0b71a53a365c21fdf765b44d0e359b5f36c82328 100644 (file)
@@ -26,6 +26,12 @@ import org.eclipse.linuxtools.tmf.event.TmfData;
  */
 public class TmfProviderManager {
 
+       // ------------------------------------------------------------------------
+       // No constructor
+       // ------------------------------------------------------------------------
+
+       private TmfProviderManager() {}
+       
        // ------------------------------------------------------------------------
        // Keeps track of the providers for each event type
        // ------------------------------------------------------------------------
@@ -42,7 +48,6 @@ public class TmfProviderManager {
        public static <T extends TmfData> void register(Class<T> eventType, TmfDataProvider<? extends TmfData> provider) {
                if (fProviders.get(eventType) == null)
                        fProviders.put(eventType, new ArrayList<TmfDataProvider<? extends TmfData>>());
-               assert(fProviders.get(eventType) != null);
                fProviders.get(eventType).add(provider);
        }
 
index 3463a6917daf076eb91ce21e3691fe82e953aaa5..4fc0382838c63f51706a182ab1ff34aa46e06217 100644 (file)
@@ -12,6 +12,7 @@
 
 package org.eclipse.linuxtools.tmf.event;
 
+
 /**
  * <b><u>TmfTimestamp</u></b>
  * <p>
@@ -40,7 +41,7 @@ package org.eclipse.linuxtools.tmf.event;
  * Notice that the adjusted timestamp value could be negative e.g. for events
  * that occurred before t0 wrt the reference clock.
  */
-public class TmfTimestamp {
+public class TmfTimestamp implements Cloneable {
 
        // ------------------------------------------------------------------------
     // Attributes
@@ -281,4 +282,17 @@ public class TmfTimestamp {
        return "[TmfTimestamp(" + fValue + "," + fScale + "," + fPrecision + ")]";
     }
 
+    @Override
+    public TmfTimestamp clone() {
+       TmfTimestamp clone = null;
+               try {
+                       clone = (TmfTimestamp) super.clone();
+               clone.fValue = fValue;
+               clone.fScale = fScale;
+               clone.fPrecision = fPrecision;
+               } catch (CloneNotSupportedException e) {
+               }
+               return clone;
+    }
+
 }
\ No newline at end of file
index e58dc8d667ec2c75d4d8e6289d3a74050bac2d1e..126a40582ed44c2cc141e378d49aaaf87e97345a 100644 (file)
@@ -25,14 +25,16 @@ import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;
 import org.eclipse.linuxtools.tmf.request.ITmfEventRequest;
+import org.eclipse.linuxtools.tmf.signal.TmfExperimentSelectedSignal;
+import org.eclipse.linuxtools.tmf.signal.TmfExperimentUpdatedSignal;
 import org.eclipse.linuxtools.tmf.signal.TmfRangeSynchSignal;
 import org.eclipse.linuxtools.tmf.signal.TmfSignalHandler;
+import org.eclipse.linuxtools.tmf.signal.TmfTraceUpdatedSignal;
 import org.eclipse.linuxtools.tmf.trace.ITmfContext;
 import org.eclipse.linuxtools.tmf.trace.ITmfLocation;
 import org.eclipse.linuxtools.tmf.trace.ITmfTrace;
 import org.eclipse.linuxtools.tmf.trace.TmfCheckpoint;
 import org.eclipse.linuxtools.tmf.trace.TmfContext;
-import org.eclipse.linuxtools.tmf.trace.TmfTraceUpdatedSignal;
 
 /**
  * <b><u>TmfExperiment</u></b>
@@ -138,13 +140,15 @@ public class TmfExperiment<T extends TmfEvent> extends TmfEventProvider<T> imple
     
     
     /**
-     * 
+     * Clears the experiment
      */
     @Override
        public void dispose() {
+       for (ITmfTrace trace : fTraces) {
+               trace.dispose();
+       }
        fTraces = null;
        fCheckpoints.clear();
-       setCurrentExperiment(null);
         super.dispose();
     }
 
@@ -272,29 +276,11 @@ public class TmfExperiment<T extends TmfEvent> extends TmfEventProvider<T> imple
 
        @Override
        public ITmfContext armRequest(ITmfDataRequest<T> request) {
-               
                TmfTimestamp timestamp = (request instanceof ITmfEventRequest<?>) ?
                                ((ITmfEventRequest<T>) request).getRange().getStartTime() : null;
-                
-               
                TmfExperimentContext context = (timestamp != null) ? 
                        seekEvent(timestamp) : seekEvent(request.getIndex());
-
                return context;
-
-//             TmfTimestamp timestamp = null;
-//             
-//             if (request instanceof TmfEventRequest<?> == true) {
-//                     timestamp = ((TmfEventRequest<T>) request).getRange().getStartTime();
-//             }
-//             else if (request instanceof TmfCoalescedEventRequest<?> == true) {
-//                     timestamp = ((TmfCoalescedEventRequest<?>)request).getRange().getStartTime();
-//             }
-//             else {
-//                     System.out.println("ERROR : request of unknown instance in armRequest(). Class is : " + request.getClass().toString() );
-//             }
-               
-               
        }
 
        @SuppressWarnings("unchecked")
@@ -677,7 +663,13 @@ public class TmfExperiment<T extends TmfEvent> extends TmfEventProvider<T> imple
 
     @TmfSignalHandler
     public void experimentSelected(TmfExperimentSelectedSignal<T> signal) {
-               setCurrentExperiment(signal.getExperiment());
+       TmfExperiment<?> experiment = signal.getExperiment();
+       if (experiment == this) {
+               setCurrentExperiment(experiment);
+       }
+       else {
+               dispose();
+       }
 //     if (signal.getExperiment() == this) {
 //             indexExperiment(true);
 //     }
diff --git a/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentSelectedSignal.java b/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentSelectedSignal.java
deleted file mode 100644 (file)
index 6aafbaa..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 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.experiment;
-
-import org.eclipse.linuxtools.tmf.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.signal.TmfSignal;
-
-/**
- * <b><u>TmfExperimentSelectedSignal</u></b>
- * <p>
- * TODO: Implement me. Please.
- */
-public class TmfExperimentSelectedSignal<T extends TmfEvent> extends TmfSignal {
-
-       private final TmfExperiment<T> fExperiment;
-       
-       public TmfExperimentSelectedSignal(Object source, TmfExperiment<T> experiment) {
-               super(source);
-               fExperiment = experiment;
-       }
-
-       public TmfExperiment<? extends TmfEvent> getExperiment() {
-               return fExperiment;
-       }
-
-       @Override
-       public String toString() {
-               return "[TmfExperimentSelectedSignal (" + fExperiment.getName() + ")]";
-       }
-}
diff --git a/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentUpdatedSignal.java b/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentUpdatedSignal.java
deleted file mode 100644 (file)
index d01bddd..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 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.experiment;
-
-import org.eclipse.linuxtools.tmf.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.signal.TmfSignal;
-import org.eclipse.linuxtools.tmf.trace.ITmfTrace;
-
-/**
- * <b><u>TmfExperimentUpdatedSignal</u></b>
- * <p>
- * TODO: Implement me. Please.
- */
-public class TmfExperimentUpdatedSignal extends TmfSignal {
-
-       private final TmfExperiment<? extends TmfEvent> fExperiment;
-       private final ITmfTrace fTrace;
-       
-       public TmfExperimentUpdatedSignal(Object source, TmfExperiment<? extends TmfEvent> experiment, ITmfTrace trace) {
-               super(source);
-               fExperiment = experiment;
-               fTrace = trace;
-       }
-
-       public TmfExperiment<? extends TmfEvent> getExperiment() {
-               return fExperiment;
-       }
-
-       public ITmfTrace getTrace() {
-               return fTrace;
-       }
-
-       /* (non-Javadoc)
-        * @see java.lang.Object#toString()
-        */
-       @Override
-       public String toString() {
-               return "[TmfExperimentUpdatedSignal (" + fExperiment.toString() + ", " + fTrace.toString() + ")]";
-       }
-
-}
index cd2f67595c654a627d43b939b6dbe51ef0c30942..e0e9567fa8ad9b5f5419194d1afc3b0c44189b62 100644 (file)
@@ -19,6 +19,8 @@ package org.eclipse.linuxtools.tmf.trace;
  */
 public interface ITmfContext {
 
+       public long UNKNOWN_RANK = -1L;
+
        public void setLocation(ITmfLocation<?> location);
        public ITmfLocation<?> getLocation();
 
index e7ed3cc9972d86e3dc94f13458fc69c84497deaf..20b20caf5e400be810c05df4bbf4591f513ba319 100644 (file)
@@ -17,7 +17,7 @@ package org.eclipse.linuxtools.tmf.trace;
  * <p>
  * This is a place-holder for the location objects.
  */
-public interface ITmfLocation<L> extends Cloneable{
+public interface ITmfLocation<L> extends Cloneable {
 
        public void setLocation(L location);
 
index b587b561790372878e8c961b489bc38d582a03e5..0fcd9d0f946fc5c9ca18ff7814adc8beac62a852 100644 (file)
@@ -12,6 +12,7 @@
 
 package org.eclipse.linuxtools.tmf.trace;
 
+import org.eclipse.linuxtools.tmf.component.ITmfComponent;
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
 import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
@@ -20,7 +21,7 @@ import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
  * <b><u>ITmfTrace</u></b>
  * <p>
  */
-public interface ITmfTrace {
+public interface ITmfTrace extends ITmfComponent {
        
        public ITmfTrace createTraceCopy();
        
@@ -47,7 +48,7 @@ public interface ITmfTrace {
     public TmfTimestamp getStartTime();
     public TmfTimestamp getEndTime();
 
-    /**
+       /**
      * Positions the trace at the first event with the specified
      * timestamp or index (i.e. the nth event in the trace).
      * 
index 2105fea1e9df36265c30eac7abfb8044eeaa413f..6f19adf79c341609c132a0b717f46d20ee5071d2 100644 (file)
@@ -17,7 +17,7 @@ import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 /**
  * <b><u>TmfCheckpoint</u></b>
  * <p>
- * This class maps an event timestamp with a location.
+ * This class maps an event timestamp to a generic location.
  */
 public class TmfCheckpoint implements Comparable<TmfCheckpoint> {
 
@@ -32,28 +32,45 @@ public class TmfCheckpoint implements Comparable<TmfCheckpoint> {
     // Constructors
     // ------------------------------------------------------------------------
 
+    @SuppressWarnings("unused")
+       private TmfCheckpoint() {
+        fTimestamp = null;
+        fLocation  = null;
+    }
+
     /**
-     * @param ts
-     * @param location
+     * @param ts the checkpoint timestamp
+     * @param location the corresponding trace location
      */
     public TmfCheckpoint(TmfTimestamp ts, ITmfLocation<?> location) {
         fTimestamp = ts;
         fLocation = location;
     }
 
+    /**
+     * Deep copy constructor
+     * @param other the other checkpoint
+     */
+    public TmfCheckpoint(TmfCheckpoint other) {
+       if (other == null)
+               throw new IllegalArgumentException();
+        fTimestamp = (TmfTimestamp) other.fTimestamp.clone();
+        fLocation  = other.fLocation.clone();
+    }
+
     // ------------------------------------------------------------------------
     // Accessors
     // ------------------------------------------------------------------------
 
     /**
-     * @return the checkpoint event timestamp
+     * @return the checkpoint timestamp
      */
     public TmfTimestamp getTimestamp() {
         return fTimestamp;
     }
 
     /**
-     * @return the checkpoint event stream location
+     * @return the checkpoint stream location
      */
     public ITmfLocation<?> getLocation() {
         return fLocation;
@@ -65,9 +82,7 @@ public class TmfCheckpoint implements Comparable<TmfCheckpoint> {
 
     @Override
     public int hashCode() {
-       int result = 37;
-       result = 17 * result + fTimestamp.hashCode();
-       return result;
+       return fTimestamp.hashCode();
     }
  
     @Override
@@ -79,6 +94,11 @@ public class TmfCheckpoint implements Comparable<TmfCheckpoint> {
        return fTimestamp.equals(o.fTimestamp);
     }
  
+    @Override
+    public String toString() {
+       return "[TmfCheckpoint(" + fTimestamp +  "," + fLocation + ")]";
+    }
     // ------------------------------------------------------------------------
     // Comparable
     // ------------------------------------------------------------------------
index 86c587c3551e6550f1749704e3ac392bfb7e0186..89ca3239b9cce1044836c5550807e27f048f0e24 100644 (file)
@@ -19,8 +19,6 @@ package org.eclipse.linuxtools.tmf.trace;
  * Trace context structure. It ties a trace location to an event rank. The
  * context should be enough to restore the trace state so the corresponding
  * event can be read.
- * <p>
- * Used to handle conflicting, concurrent accesses to the trace. 
  */
 public class TmfContext implements ITmfContext, Cloneable {
 
@@ -48,20 +46,6 @@ public class TmfContext implements ITmfContext, Cloneable {
                this(null, 0);
        }
 
-       // ------------------------------------------------------------------------
-       // Cloneable
-       // ------------------------------------------------------------------------
-
-       @Override
-       public TmfContext clone() {
-               try {
-                       return (TmfContext) super.clone();
-               } catch (CloneNotSupportedException e) {
-                       e.printStackTrace();
-               }
-               return null;
-       }
-
        // ------------------------------------------------------------------------
        // ITmfContext
        // ------------------------------------------------------------------------
@@ -83,7 +67,46 @@ public class TmfContext implements ITmfContext, Cloneable {
        }
 
        public void updateRank(int delta) {
-               fRank += delta;
+               if (fRank != UNKNOWN_RANK)
+                       fRank += delta;
+       }
+
+       // ------------------------------------------------------------------------
+       // Object
+       // ------------------------------------------------------------------------
+
+    @Override
+    public int hashCode() {
+               int result = 17;
+               result = 37 * result + fLocation.hashCode();
+               result = 37 * result + (int) (fRank ^ (fRank >>> 32));
+       return result;
+    }
+    @Override
+    public boolean equals(Object other) {
+       if (!(other instanceof TmfContext)) {
+               return false;
+       }
+       TmfContext o = (TmfContext) other;
+       return fLocation.equals(o.fLocation) && (fRank == o.fRank);
+    }
+    @Override
+    public String toString() {
+       return "[TmfContext(" + fLocation.toString() +  "," + fRank + ")]";
+    }
+       @Override
+       public TmfContext clone() {
+               TmfContext clone = null;
+               try {
+                       clone = (TmfContext) super.clone();
+                       clone.fLocation = fLocation.clone();
+                       clone.fRank = fRank;
+               } catch (CloneNotSupportedException e) {
+               }
+               return clone;
        }
 
 }
index 6851d9e1be8f59d11f37921cff35c0c128bf4061..40d736456ff2fcf26877639c2072d9ef0e68a4ad 100644 (file)
@@ -12,6 +12,8 @@
 
 package org.eclipse.linuxtools.tmf.trace;
 
+import java.lang.reflect.Method;
+
 /**
  * <b><u>TmfLocation</u></b>
  * <p>
@@ -21,10 +23,20 @@ public class TmfLocation<L> implements ITmfLocation<L> {
 
        private L fLocation;
        
+       @SuppressWarnings("unused")
+       private TmfLocation() {
+       }
+
        public TmfLocation(L location) {
                fLocation = location;
        }
 
+       public TmfLocation(TmfLocation<L> other) {
+       if (other == null)
+               throw new IllegalArgumentException();
+       fLocation = other.fLocation;
+       }
+
        public void setLocation(L location) {
                fLocation = location;
        }
@@ -33,20 +45,44 @@ public class TmfLocation<L> implements ITmfLocation<L> {
                return fLocation;
        }
 
+       // ------------------------------------------------------------------------
+    // Object
+    // ------------------------------------------------------------------------
+
+       @Override
+    public int hashCode() {
+               return fLocation.hashCode();
+    }
+
+    @Override
+    public boolean equals(Object other) {
+        if (!(other instanceof TmfLocation<?>))
+               return false;
+        TmfLocation<?> o = (TmfLocation<?>) other;
+        return fLocation.equals(o.fLocation);
+    }
+
        @Override
        public String toString() {
                return fLocation.toString();
        }
 
-       @Override
        @SuppressWarnings("unchecked")
+       @Override
        public TmfLocation<L> clone() {
+               TmfLocation<L> clone = null;
                try {
-                       return (TmfLocation<L>) super.clone();
-               } catch (CloneNotSupportedException e) {
-                       e.printStackTrace();
+                       clone = (TmfLocation<L>) super.clone();
+                       Class<?> clazz  = this.fLocation.getClass(); 
+                       Method   method = clazz.getMethod("clone", new Class[0]);
+                       Object   duplic = method.invoke(this.fLocation, new Object[0]);
+                       clone.fLocation = (L) duplic;
+               } catch (NoSuchMethodException e) { 
+                     // exception suppressed 
+               } catch (Exception e) {
+                       throw new InternalError(e.toString());
                }
-               return null;
+               return clone;
        }
 
 }
index 95da4f1c8f0d57659f92b660ab90132a41aed71f..66e646fb315ac98655b79e9479c799a52fc6fcd0 100644 (file)
@@ -27,7 +27,7 @@ import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;
 import org.eclipse.linuxtools.tmf.request.ITmfEventRequest;
-import org.eclipse.linuxtools.tmf.request.TmfCoalescedEventRequest;
+import org.eclipse.linuxtools.tmf.signal.TmfTraceUpdatedSignal;
 
 /**
  * <b><u>TmfTrace</u></b>
@@ -36,17 +36,20 @@ import org.eclipse.linuxtools.tmf.request.TmfCoalescedEventRequest;
  * class and provide implementation for <code>getCurrentLocation()</code> and
  * <code>seekLocation()</code>, as well as a proper parser, to have a working
  * concrete implementation.
- * 
+ * <p>
  * Note: The notion of event rank is still under heavy discussion. Although
- * used for by the Events View and probably useful in then general case, there
+ * used by the Events View and probably useful in the general case, there
  * is no easy way to implement it for LTTng (actually  a strong case is being
- * made that this is useless). Therefore, this is a minimal and partial
- * implementation and rank should not be relied upon in the general case (i.e.
- *  it was hacked to work for the Events View).
+ * made that this is useless).
+ * <p>
+ * That it is not supported by LTTng does by no mean indicate that it is not
+ * useful for (just about) every other tracing tool. Therefore, this class
+ * provides a minimal (and partial) implementation of rank. However, the current
+ * implementation should not be relied on in the general case.
  * 
  * TODO: Add support for live streaming (notifications, incremental indexing, ...)
  */
-public abstract class TmfTrace<T extends TmfEvent> extends TmfEventProvider<T> implements ITmfTrace {
+public abstract class TmfTrace<T extends TmfEvent> extends TmfEventProvider<T> implements ITmfTrace, Cloneable {
 
     // ------------------------------------------------------------------------
     // Constants
@@ -82,6 +85,14 @@ public abstract class TmfTrace<T extends TmfEvent> extends TmfEventProvider<T> i
     // Constructors
     // ------------------------------------------------------------------------
 
+    /**
+     * @param path
+     * @throws FileNotFoundException
+     */
+    protected TmfTrace(Class<T> type, String path) throws FileNotFoundException {
+       this(type, path, DEFAULT_CACHE_SIZE);
+    }
+
     /**
      * @param path
      * @param cacheSize
@@ -95,12 +106,16 @@ public abstract class TmfTrace<T extends TmfEvent> extends TmfEventProvider<T> i
         fIndexPageSize = (cacheSize > 0) ? cacheSize : DEFAULT_CACHE_SIZE;
     }
 
-    /**
-     * @param path
-     * @throws FileNotFoundException
+    /* (non-Javadoc)
+     * @see java.lang.Object#clone()
      */
-    protected TmfTrace(Class<T> type, String path) throws FileNotFoundException {
-       this(type, path, DEFAULT_CACHE_SIZE);
+    @SuppressWarnings("unchecked")
+       @Override
+       public TmfTrace<T> clone() throws CloneNotSupportedException {
+       TmfTrace<T> clone = (TmfTrace<T>) super.clone();
+       clone.fCheckpoints = (Vector<TmfCheckpoint>) fCheckpoints.clone(); 
+       clone.fTimeRange = new TmfTimeRange(fTimeRange); 
+       return clone;
     }
 
     // ------------------------------------------------------------------------
@@ -157,8 +172,9 @@ public abstract class TmfTrace<T extends TmfEvent> extends TmfEventProvider<T> i
        return fTimeRange.getEndTime();
     }
 
-    public Vector<TmfCheckpoint> getCheckpoints() {
-       return fCheckpoints;
+    @SuppressWarnings("unchecked")
+       public Vector<TmfCheckpoint> getCheckpoints() {
+       return (Vector<TmfCheckpoint>) fCheckpoints.clone();
     }
 
     // ------------------------------------------------------------------------
@@ -186,10 +202,7 @@ public abstract class TmfTrace<T extends TmfEvent> extends TmfEventProvider<T> i
                if (request instanceof ITmfEventRequest<?>) {
                        return seekEvent(((ITmfEventRequest<T>) request).getRange().getStartTime());
                }
-               if (request instanceof TmfCoalescedEventRequest<?>) {
-                       return seekEvent(((TmfCoalescedEventRequest<T>) request).getRange().getStartTime());
-               }
-               return null;
+               return seekEvent(request.getIndex());
        }
 
        /**
@@ -248,7 +261,7 @@ public abstract class TmfTrace<T extends TmfEvent> extends TmfEventProvider<T> i
         context.setRank(index * fIndexPageSize);
 
         // And locate the event
-        TmfContext nextEventContext = new TmfContext(context);
+        TmfContext nextEventContext = context.clone(); // Must use clone() to get the right subtype...
         TmfEvent event = getNextEvent(nextEventContext);
         while (event != null && event.getTimestamp().compareTo(timestamp, false) < 0) {
                context.setLocation(nextEventContext.getLocation().clone());
@@ -313,7 +326,7 @@ public abstract class TmfTrace<T extends TmfEvent> extends TmfEventProvider<T> i
         * 
         * @param event
         */
-       public void processEvent(TmfEvent event) {
+       protected void processEvent(TmfEvent event) {
                // Do nothing by default
        }
 
@@ -333,7 +346,7 @@ public abstract class TmfTrace<T extends TmfEvent> extends TmfEventProvider<T> i
         */
        @Override
        public String toString() {
-               return "[TmfTrace (" + fName + "]";
+               return "[TmfTrace (" + fName + ")]";
        }
 
     // ------------------------------------------------------------------------
@@ -341,21 +354,25 @@ public abstract class TmfTrace<T extends TmfEvent> extends TmfEventProvider<T> i
     // ------------------------------------------------------------------------
 
        /*
-        * The purpose of the index is to keep the information needed to rapidly
-        * access a trace event based on its timestamp or rank.
+        * The purpose of the index is to perform a pass over the trace and collect
+        * basic information that can be later used to rapidly access a trace events.
+        * 
+        * The information collected:
+        * - fCheckpoints, the list of evenly separated checkpoints (timestamp + location)
+        * - fTimeRange, the trace time span
+        * - fNbEvents, the number of events in the trace
         * 
-        * NOTE: As it is, doesn't work for streaming traces.
+        * NOTE: Doesn't work for streaming traces.
         */
 
        private IndexingJob job;
 
        // Indicates that an indexing job is already running
-       private Object  fIndexingLock = new Object();
        private boolean fIndexing = false;
        private Boolean fIndexed  = false;
 
        public void indexTrace(boolean waitForCompletion) {
-       synchronized (fIndexingLock) {
+       synchronized (this) {
                        if (fIndexed || fIndexing) {
                        return;
                }
diff --git a/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfTraceUpdatedSignal.java b/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfTraceUpdatedSignal.java
deleted file mode 100644 (file)
index 2cba20e..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 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.trace;
-
-import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
-import org.eclipse.linuxtools.tmf.signal.TmfSignal;
-
-/**
- * <b><u>TmfTraceUpdatedSignal</u></b>
- * <p>
- * TODO: Implement me. Please.
- */
-public class TmfTraceUpdatedSignal extends TmfSignal {
-
-       private final ITmfTrace fTrace;
-       private final TmfTimeRange fTimeRange;
-       
-       public TmfTraceUpdatedSignal(Object source, ITmfTrace trace, TmfTimeRange range) {
-               super(source);
-               fTrace = trace;
-               fTimeRange = range;
-       }
-
-       public ITmfTrace getTrace() {
-               return fTrace;
-       }
-
-       public TmfTimeRange getRange() {
-               return fTimeRange;
-       }
-
-       /* (non-Javadoc)
-        * @see java.lang.Object#toString()
-        */
-       @Override
-       public String toString() {
-               return "[TmfTraceUpdatedSignal (" + fTrace.toString() + ", " + fTimeRange.toString() + ")]";
-       }
-
-}
This page took 0.069495 seconds and 5 git commands to generate.