From 12ca2c10e98fa0adff9408bbcdd5df593c4496d0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Genevi=C3=A8ve=20Bastien?= Date: Mon, 1 Dec 2014 11:32:02 -0500 Subject: [PATCH] TMF: Change timestamps scale of TmfXmlTraceStub to nanoseconds MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-on: https://git.eclipse.org/r/37419 Tested-by: Hudson CI Reviewed-by: Matthew Khouzam --- .../stateprovider/StateProviderModelTest.java | 8 +++----- .../stubs/trace/xml/TmfXmlTraceStub.java | 19 +++++++++++++------ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/org.eclipse.tracecompass.tmf.analysis.xml.core.tests/src/org/eclipse/tracecompass/tmf/analysis/xml/core/tests/stateprovider/StateProviderModelTest.java b/org.eclipse.tracecompass.tmf.analysis.xml.core.tests/src/org/eclipse/tracecompass/tmf/analysis/xml/core/tests/stateprovider/StateProviderModelTest.java index 85fdb88f51..9fdbfcdd2f 100644 --- a/org.eclipse.tracecompass.tmf.analysis.xml.core.tests/src/org/eclipse/tracecompass/tmf/analysis/xml/core/tests/stateprovider/StateProviderModelTest.java +++ b/org.eclipse.tracecompass.tmf.analysis.xml.core.tests/src/org/eclipse/tracecompass/tmf/analysis/xml/core/tests/stateprovider/StateProviderModelTest.java @@ -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 intervals = StateSystemUtils.queryHistoryRange(ss, quark, expectedStarts[0] * TO_NS, expectedStarts[expectedCount] * TO_NS); + List 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()); } diff --git a/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/xml/TmfXmlTraceStub.java b/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/xml/TmfXmlTraceStub.java index 85cc45fc08..b8681dd365 100644 --- a/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/xml/TmfXmlTraceStub.java +++ b/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/xml/TmfXmlTraceStub.java @@ -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 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; } - - } -- 2.34.1