TMF: Change timestamps scale of TmfXmlTraceStub to nanoseconds
authorGeneviève Bastien <gbastien+lttng@versatic.net>
Mon, 1 Dec 2014 16:32:02 +0000 (11:32 -0500)
committerGenevieve Bastien <gbastien+lttng@versatic.net>
Wed, 3 Dec 2014 20:12:18 +0000 (15:12 -0500)
The reason is wasn't so before is that custom XML traces did not support that
input format, but we can convert manually.

Change-Id: I25f1fa1f8a5ad874f87bccfdbe35a883820fbe45
Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/37419
Tested-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
org.eclipse.tracecompass.tmf.analysis.xml.core.tests/src/org/eclipse/tracecompass/tmf/analysis/xml/core/tests/stateprovider/StateProviderModelTest.java
org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/xml/TmfXmlTraceStub.java

index 85fdb88f512b13c7d055d6c178f59438cad984d9..9fdbfcdd2f2ab2de7299a7d06cd5316ce9c1f3f5 100644 (file)
@@ -50,8 +50,6 @@ import org.w3c.dom.NodeList;
 public class StateProviderModelTest {
 
     private static final @NonNull String testTrace1 = "test_traces/testTrace1.xml";
-    /* Factor to convert seconds to nanoseconds */
-    private static final long TO_NS = 1000000000L;
 
     private static @NonNull ITmfTrace initializeTrace(String traceFile) {
         /* Initialize the trace */
@@ -87,12 +85,12 @@ public class StateProviderModelTest {
 
     private static void verifyStateIntervals(String testId, @NonNull ITmfStateSystem ss, Integer quark, int[] expectedStarts, ITmfStateValue[] expectedValues) throws AttributeNotFoundException, StateSystemDisposedException {
         int expectedCount = expectedStarts.length - 1;
-        List<ITmfStateInterval> intervals = StateSystemUtils.queryHistoryRange(ss, quark, expectedStarts[0] * TO_NS, expectedStarts[expectedCount] * TO_NS);
+        List<ITmfStateInterval> intervals = StateSystemUtils.queryHistoryRange(ss, quark, expectedStarts[0], expectedStarts[expectedCount]);
         assertEquals(testId + ": Interval count", expectedCount, intervals.size());
         for (int i = 0; i < expectedCount; i++) {
             ITmfStateInterval interval = intervals.get(i);
-            assertEquals(testId + ": Start time of interval " + i, expectedStarts[i] * TO_NS, interval.getStartTime());
-            long actualEnd = (i == expectedCount - 1) ? (expectedStarts[i + 1] * TO_NS) : (expectedStarts[i + 1] * TO_NS) - 1;
+            assertEquals(testId + ": Start time of interval " + i, expectedStarts[i], interval.getStartTime());
+            long actualEnd = (i == expectedCount - 1) ? (expectedStarts[i + 1]) : (expectedStarts[i + 1]) - 1;
             assertEquals(testId + ": End time of interval " + i, actualEnd, interval.getEndTime());
             assertEquals(testId + ": Expected value of interval " + i, expectedValues[i], interval.getStateValue());
         }
index 85cc45fc08cc97f161489693d02f138b7f9b1b0e..b8681dd365c659c665cfe9990b59321543e11a5e 100644 (file)
@@ -49,6 +49,7 @@ import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomXmlTrace;
 import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomXmlTraceDefinition;
 import org.eclipse.tracecompass.tmf.core.signal.TmfSignalManager;
 import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp;
+import org.eclipse.tracecompass.tmf.core.timestamp.TmfNanoTimestamp;
 import org.eclipse.tracecompass.tmf.core.trace.ITmfContext;
 import org.eclipse.tracecompass.tmf.core.trace.TmfContext;
 import org.eclipse.tracecompass.tmf.core.trace.TmfTrace;
@@ -90,6 +91,8 @@ public class TmfXmlTraceStub extends TmfTrace {
     private static final String ASPECT_SPECIAL_EVENT = "set_aspects";
     private static final String ASPECT_CPU = "cpu";
 
+    private static final Long SECONDS_TO_NS = 1000000000L;
+
     private final CustomXmlTrace fTrace;
 
     private Collection<ITmfEventAspect> fAspects;
@@ -179,7 +182,8 @@ public class TmfXmlTraceStub extends TmfTrace {
             return new Status(IStatus.ERROR, Activator.PLUGIN_ID, NLS.bind(org.eclipse.tracecompass.tmf.tests.stubs.trace.xml.Messages.TmfDevelopmentTrace_IoError, path), e);
         }
         @SuppressWarnings("null")
-        @NonNull IStatus status = Status.OK_STATUS;
+        @NonNull
+        IStatus status = Status.OK_STATUS;
         return status;
     }
 
@@ -272,9 +276,14 @@ public class TmfXmlTraceStub extends TmfTrace {
         ITmfEventType customEventType = event.getType();
         TmfEventType eventType = new TmfEventType(eventName, customEventType.getRootField());
         ITmfEventField eventFields = new CustomEventContent(content.getName(), content.getValue(), fieldsArray);
-        // FIXME We used to use getSource() to get the CPU. Now this will have
-        // to be done differently.
-        TmfEvent newEvent = new TmfEvent(this, ITmfContext.UNKNOWN_RANK, event.getTimestamp(), eventType, eventFields);
+        /*
+         * TODO: Timestamps for these traces are in nanos, but since the
+         * CustomXmlTrace does not support this format, the timestamp of the
+         * original is in second and we need to convert it. We should do that at
+         * the source when it is supported
+         */
+        ITmfTimestamp timestamp = new TmfNanoTimestamp(event.getTimestamp().getValue() / SECONDS_TO_NS);
+        TmfEvent newEvent = new TmfEvent(this, ITmfContext.UNKNOWN_RANK, timestamp, eventType, eventFields);
         updateAttributes(savedContext, event.getTimestamp());
         context.increaseRank();
 
@@ -338,6 +347,4 @@ public class TmfXmlTraceStub extends TmfTrace {
         return fAspects;
     }
 
-
-
 }
This page took 0.02946 seconds and 5 git commands to generate.