From: Alexandre Montplaisir Date: Fri, 2 Sep 2016 01:30:28 +0000 (-0400) Subject: os.linux: Make KernelCtfTraceStub public X-Git-Url: http://git.efficios.com/?p=deliverable%2Ftracecompass.git;a=commitdiff_plain;h=4bf167e792d15556a15c0977a0a882a733509582 os.linux: Make KernelCtfTraceStub public Other tests might want to make use of kernel traces without depending on the lttng2.kernel plugins. One limitation is that that stub uses the DefaultEventLayout, which means only very early LTTng 2.x traces will work. More recent event layouts are only defined in the lttng plugins at the moment. Change-Id: I0717cba18e696cabb4bbad53c90dbe471f836ffa Signed-off-by: Alexandre Montplaisir --- diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/latency/KernelCtfTraceStub.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/latency/KernelCtfTraceStub.java deleted file mode 100644 index 05177c2bd7..0000000000 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/latency/KernelCtfTraceStub.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2016 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 - *******************************************************************************/ - -package org.eclipse.tracecompass.analysis.os.linux.core.tests.latency; - -import java.io.IOException; - -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.KernelEventLayoutStub; -import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout; -import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelTrace; -import org.eclipse.tracecompass.testtraces.ctf.CtfTestTrace; -import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException; -import org.eclipse.tracecompass.tmf.ctf.core.event.CtfTmfEvent; -import org.eclipse.tracecompass.tmf.ctf.core.trace.CtfTmfTrace; - -class KernelCtfTraceStub extends CtfTmfTrace implements IKernelTrace { - public KernelCtfTraceStub() { - super(); - } - - public static synchronized KernelCtfTraceStub getTrace(CtfTestTrace ctfTrace) { - String tracePath; - try { - tracePath = FileLocator.toFileURL(ctfTrace.getTraceURL()).getPath(); - } catch (IOException e) { - throw new IllegalStateException(); - } - - KernelCtfTraceStub trace = new KernelCtfTraceStub(); - try { - trace.initTrace(null, tracePath, CtfTmfEvent.class); - } catch (TmfTraceException e) { - /* Should not happen if tracesExist() passed */ - throw new RuntimeException(e); - } - return trace; - } - - @Override - public @NonNull IKernelAnalysisEventLayout getKernelEventLayout() { - return KernelEventLayoutStub.getInstance(); - } -} \ No newline at end of file diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/latency/SyscallAnalysisTest.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/latency/SyscallAnalysisTest.java index 8f55c3714e..8d389d51ed 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/latency/SyscallAnalysisTest.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/latency/SyscallAnalysisTest.java @@ -13,6 +13,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.KernelCtfTraceStub; import org.eclipse.tracecompass.internal.analysis.os.linux.core.latency.SystemCallLatencyAnalysis; import org.eclipse.tracecompass.segmentstore.core.ISegment; import org.eclipse.tracecompass.segmentstore.core.ISegmentStore; diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/latency/SyscallStatsAnalysisTest.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/latency/SyscallStatsAnalysisTest.java index 235af47150..0ef6ce14e1 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/latency/SyscallStatsAnalysisTest.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/latency/SyscallStatsAnalysisTest.java @@ -12,6 +12,7 @@ package org.eclipse.tracecompass.analysis.os.linux.core.tests.latency; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.KernelCtfTraceStub; import org.eclipse.tracecompass.analysis.timing.core.segmentstore.statistics.SegmentStoreStatistics; import org.eclipse.tracecompass.internal.analysis.os.linux.core.latency.SystemCallLatencyAnalysis; import org.eclipse.tracecompass.internal.analysis.os.linux.core.latency.statistics.SystemCallLatencyStatisticsAnalysisModule; diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/KernelCtfTraceStub.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/KernelCtfTraceStub.java new file mode 100644 index 0000000000..22b014a6ea --- /dev/null +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/KernelCtfTraceStub.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * Copyright (c) 2016 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 + *******************************************************************************/ + +package org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace; + +import java.io.IOException; + +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout; +import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelTrace; +import org.eclipse.tracecompass.testtraces.ctf.CtfTestTrace; +import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException; +import org.eclipse.tracecompass.tmf.ctf.core.event.CtfTmfEvent; +import org.eclipse.tracecompass.tmf.ctf.core.trace.CtfTmfTrace; + +/** + * Stub for a generic CTF kernel trace. + * + * It's basically an LTTng (2.0/2.1) trace, but without depending on o.e.t.lttng2.kernel! + */ +public class KernelCtfTraceStub extends CtfTmfTrace implements IKernelTrace { + + /** + * Constructor + */ + public KernelCtfTraceStub() { + super(); + } + + /** + * Get a trace from a CTF test trace. + * + * @param ctfTrace + * The CTF test trace + * @return The initialized trace + */ + public static synchronized KernelCtfTraceStub getTrace(CtfTestTrace ctfTrace) { + String tracePath; + try { + tracePath = FileLocator.toFileURL(ctfTrace.getTraceURL()).getPath(); + } catch (IOException e) { + throw new IllegalStateException(); + } + + KernelCtfTraceStub trace = new KernelCtfTraceStub(); + try { + trace.initTrace(null, tracePath, CtfTmfEvent.class); + } catch (TmfTraceException e) { + /* Should not happen if tracesExist() passed */ + throw new RuntimeException(e); + } + return trace; + } + + @Override + public @NonNull IKernelAnalysisEventLayout getKernelEventLayout() { + return KernelEventLayoutStub.getInstance(); + } +} \ No newline at end of file