From 698fde8753302ead0e9ab9daa79894dcf1b65ec1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Genevi=C3=A8ve=20Bastien?= Date: Tue, 1 Mar 2016 13:36:05 -0500 Subject: [PATCH] os.tests: Add a kernel stub trace class and use that in unit tests MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This allows to define an event layout for unit tests instead of taking the default one, which might not permit to test everything. This is a first step to do exhaustive unit testing of the kernel analysis Change-Id: I6ecd85c959bf2e4c4c853deda94a0277a1e4610d Signed-off-by: Geneviève Bastien Reviewed-on: https://git.eclipse.org/r/67623 Reviewed-by: Patrick Tasse Tested-by: Patrick Tasse Reviewed-by: Hudson CI --- .../.classpath | 1 + .../META-INF/MANIFEST.MF | 3 +- .../build.properties | 3 +- .../plugin.xml | 18 ++++-- .../ContextSwitchProviderTest.java | 4 +- .../cpuusage/CpuUsageStateProviderTest.java | 6 +- .../KernelStateProviderTest.java | 57 ++++++++++++------- .../KernelThreadInformationProviderTest.java | 4 +- .../kernelanalysis/KernelTidAspectTest.java | 4 +- .../stubs/trace/KernelEventLayoutStub.java | 43 ++++++++++++++ .../stubs/trace/TmfXmlKernelTraceStub.java | 46 +++++++++++++++ .../core/tests/stubs/trace/package-info.java | 11 ++++ .../linux/core/trace/DefaultEventLayout.java | 11 +++- .../plugin.xml | 2 +- .../kernel/core/tests/shared/vm/VmTraces.java | 4 +- .../graph/LttngExecutionGraphTest.java | 6 +- 16 files changed, 178 insertions(+), 45 deletions(-) create mode 100644 analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/KernelEventLayoutStub.java create mode 100644 analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/TmfXmlKernelTraceStub.java create mode 100644 analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/package-info.java diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/.classpath b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/.classpath index 5480bc8015..aed35557fe 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/.classpath +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/.classpath @@ -11,5 +11,6 @@ + diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/META-INF/MANIFEST.MF index f8933b2bef..7cd1290ccf 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/META-INF/MANIFEST.MF +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/META-INF/MANIFEST.MF @@ -22,5 +22,6 @@ Require-Bundle: org.junit;bundle-version="4.0.0", Import-Package: com.google.common.collect, org.eclipse.tracecompass.testtraces.ctf;version="1.0.0" Export-Package: org.eclipse.tracecompass.analysis.os.linux.core.tests, - org.eclipse.tracecompass.analysis.os.linux.core.tests.cpuusage + org.eclipse.tracecompass.analysis.os.linux.core.tests.cpuusage, + org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace Bundle-Activator: org.eclipse.tracecompass.analysis.os.linux.core.tests.Activator diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/build.properties b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/build.properties index 0f70a065fd..20bab88ce4 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/build.properties +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/build.properties @@ -10,7 +10,8 @@ # Ericsson - Initial API and implementation ############################################################################### -source.. = src/ +source.. = src/,\ + stubs output.. = bin/ bin.includes = META-INF/,\ .,\ diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/plugin.xml b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/plugin.xml index 31b9a9fe47..a0fc7a1378 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/plugin.xml +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/plugin.xml @@ -10,7 +10,7 @@ name="CPU Usage Test Analysis"> + class="org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub"> + class="org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub"> + class="org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub"> - + + + + diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/contextswitch/ContextSwitchProviderTest.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/contextswitch/ContextSwitchProviderTest.java index 9ad2edd2e1..e9870dbbf8 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/contextswitch/ContextSwitchProviderTest.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/contextswitch/ContextSwitchProviderTest.java @@ -26,6 +26,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.tracecompass.analysis.os.linux.core.contextswitch.KernelContextSwitchAnalysis; import org.eclipse.tracecompass.analysis.os.linux.core.kernelanalysis.Attributes; import org.eclipse.tracecompass.analysis.os.linux.core.tests.Activator; +import org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub; import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem; import org.eclipse.tracecompass.statesystem.core.exceptions.AttributeNotFoundException; import org.eclipse.tracecompass.statesystem.core.exceptions.StateSystemDisposedException; @@ -38,7 +39,6 @@ import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils; -import org.eclipse.tracecompass.tmf.tests.stubs.trace.xml.TmfXmlTraceStub; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -68,7 +68,7 @@ public class ContextSwitchProviderTest { */ @Before public void setUp() { - ITmfTrace trace = new TmfXmlTraceStub(); + ITmfTrace trace = new TmfXmlKernelTraceStub(); IPath filePath = Activator.getAbsoluteFilePath(CPU_USAGE_FILE); IStatus status = trace.validate(null, filePath.toOSString()); if (!status.isOK()) { diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/cpuusage/CpuUsageStateProviderTest.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/cpuusage/CpuUsageStateProviderTest.java index bff9950ebc..9f7a7be4b3 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/cpuusage/CpuUsageStateProviderTest.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/cpuusage/CpuUsageStateProviderTest.java @@ -31,13 +31,14 @@ import org.eclipse.tracecompass.analysis.os.linux.core.cpuusage.KernelCpuUsageAn import org.eclipse.tracecompass.analysis.os.linux.core.kernelanalysis.Attributes; import org.eclipse.tracecompass.analysis.os.linux.core.kernelanalysis.KernelAnalysisModule; import org.eclipse.tracecompass.analysis.os.linux.core.tests.Activator; +import org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub; import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem; import org.eclipse.tracecompass.statesystem.core.exceptions.AttributeNotFoundException; import org.eclipse.tracecompass.statesystem.core.interval.ITmfStateInterval; import org.eclipse.tracecompass.statesystem.core.statevalue.ITmfStateValue; import org.eclipse.tracecompass.statesystem.core.statevalue.TmfStateValue; -import org.eclipse.tracecompass.statesystem.core.tests.shared.utils.StateSystemTestUtils; import org.eclipse.tracecompass.statesystem.core.tests.shared.utils.StateIntervalStub; +import org.eclipse.tracecompass.statesystem.core.tests.shared.utils.StateSystemTestUtils; import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule; import org.eclipse.tracecompass.tmf.core.event.TmfEvent; import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException; @@ -47,7 +48,6 @@ import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils; -import org.eclipse.tracecompass.tmf.tests.stubs.trace.xml.TmfXmlTraceStub; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -77,7 +77,7 @@ public class CpuUsageStateProviderTest { */ @Before public void setUp() { - ITmfTrace trace = new TmfXmlTraceStub(); + ITmfTrace trace = new TmfXmlKernelTraceStub(); IPath filePath = Activator.getAbsoluteFilePath(CPU_USAGE_FILE); IStatus status = trace.validate(null, filePath.toOSString()); if (!status.isOK()) { diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelStateProviderTest.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelStateProviderTest.java index 83752c305a..d163f7efeb 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelStateProviderTest.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelStateProviderTest.java @@ -13,16 +13,20 @@ package org.eclipse.tracecompass.analysis.os.linux.core.tests.kernelanalysis; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IStatus; import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout; +import org.eclipse.tracecompass.analysis.os.linux.core.tests.Activator; +import org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub; +import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelTrace; import org.eclipse.tracecompass.internal.analysis.os.linux.core.kernel.KernelStateProvider; -import org.eclipse.tracecompass.testtraces.ctf.CtfTestTrace; +import org.eclipse.tracecompass.tmf.core.event.TmfEvent; +import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException; import org.eclipse.tracecompass.tmf.core.statesystem.ITmfStateProvider; -import org.eclipse.tracecompass.tmf.ctf.core.tests.shared.CtfTmfTestTraceUtils; -import org.eclipse.tracecompass.tmf.ctf.core.trace.CtfTmfTrace; -import org.junit.AfterClass; -import org.junit.BeforeClass; +import org.junit.After; +import org.junit.Before; import org.junit.Test; /** @@ -32,28 +36,39 @@ import org.junit.Test; */ public class KernelStateProviderTest { - private static final @NonNull CtfTestTrace testTrace = CtfTestTrace.TRACE2; + private static final @NonNull String LTTNG_KERNEL_FILE = "testfiles/lttng_kernel_analysis.xml"; - private static CtfTmfTrace trace; - private static ITmfStateProvider input; + private IKernelTrace fTrace; + private ITmfStateProvider fInput; /** * Set-up. */ - @BeforeClass - public static void initialize() { - CtfTmfTrace thetrace = CtfTmfTestTraceUtils.getTrace(testTrace); - trace = thetrace; - input = new KernelStateProvider(thetrace, IKernelAnalysisEventLayout.DEFAULT_LAYOUT); + @Before + public void initialize() { + IKernelTrace thetrace = new TmfXmlKernelTraceStub(); + IPath filePath = Activator.getAbsoluteFilePath(LTTNG_KERNEL_FILE); + IStatus status = thetrace.validate(null, filePath.toOSString()); + if (!status.isOK()) { + fail(status.getException().getMessage()); + } + try { + thetrace.initTrace(null, filePath.toOSString(), TmfEvent.class); + } catch (TmfTraceException e) { + fail(e.getMessage()); + } + + fTrace = thetrace; + fInput = new KernelStateProvider(thetrace, thetrace.getKernelEventLayout()); } /** * Class teardown */ - @AfterClass - public static void classTeardown() { - if (trace != null) { - trace.dispose(); + @After + public void classTeardown() { + if (fTrace != null) { + fTrace.dispose(); } } @@ -63,9 +78,9 @@ public class KernelStateProviderTest { @Test public void testOpening() { long testStartTime; - testStartTime = input.getStartTime(); - /* Expected start time of "trace2" */ - assertEquals(testStartTime, 1331668247314038062L); + testStartTime = fInput.getStartTime(); + /* Expected start time of the trace */ + assertEquals(testStartTime, 1L); } } diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelThreadInformationProviderTest.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelThreadInformationProviderTest.java index 035907c34b..9e88a9880a 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelThreadInformationProviderTest.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelThreadInformationProviderTest.java @@ -32,6 +32,7 @@ import org.eclipse.tracecompass.analysis.os.linux.core.kernelanalysis.KernelAnal import org.eclipse.tracecompass.analysis.os.linux.core.kernelanalysis.KernelThreadInformationProvider; import org.eclipse.tracecompass.analysis.os.linux.core.kernelanalysis.StateValues; import org.eclipse.tracecompass.analysis.os.linux.core.tests.Activator; +import org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub; import org.eclipse.tracecompass.statesystem.core.interval.ITmfStateInterval; import org.eclipse.tracecompass.statesystem.core.statevalue.ITmfStateValue; import org.eclipse.tracecompass.statesystem.core.statevalue.TmfStateValue; @@ -43,7 +44,6 @@ import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils; -import org.eclipse.tracecompass.tmf.tests.stubs.trace.xml.TmfXmlTraceStub; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -75,7 +75,7 @@ public class KernelThreadInformationProviderTest { */ @Before public void setUp() { - ITmfTrace trace = new TmfXmlTraceStub(); + ITmfTrace trace = new TmfXmlKernelTraceStub(); IPath filePath = Activator.getAbsoluteFilePath(LTTNG_KERNEL_FILE); IStatus status = trace.validate(null, filePath.toOSString()); if (!status.isOK()) { diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelTidAspectTest.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelTidAspectTest.java index 9bed00045a..250df60d35 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelTidAspectTest.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelTidAspectTest.java @@ -26,6 +26,7 @@ import org.eclipse.tracecompass.analysis.os.linux.core.kernelanalysis.KernelAnal import org.eclipse.tracecompass.analysis.os.linux.core.kernelanalysis.KernelTidAspect; import org.eclipse.tracecompass.analysis.os.linux.core.kernelanalysis.ThreadPriorityAspect; import org.eclipse.tracecompass.analysis.os.linux.core.tests.Activator; +import org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub; import org.eclipse.tracecompass.common.core.NonNullUtils; import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; @@ -38,7 +39,6 @@ import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils; -import org.eclipse.tracecompass.tmf.tests.stubs.trace.xml.TmfXmlTraceStub; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -58,7 +58,7 @@ public class KernelTidAspectTest { // Test trace class definition // ------------------------------------------------------------------------ - private static class TmfXmlTraceStubWithTidAspects extends TmfXmlTraceStub { + private static class TmfXmlTraceStubWithTidAspects extends TmfXmlKernelTraceStub { public TmfXmlTraceStubWithTidAspects() { super(); diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/KernelEventLayoutStub.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/KernelEventLayoutStub.java new file mode 100644 index 0000000000..4f9a854588 --- /dev/null +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/KernelEventLayoutStub.java @@ -0,0 +1,43 @@ +/******************************************************************************* + * Copyright (c) 2016 École Polytechnique de Montréal + * + * 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 org.eclipse.tracecompass.analysis.os.linux.core.trace.DefaultEventLayout; +import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout; + +/** + * Class to extend to be able to set the event names for the os unit tests. + * + * @author Geneviève Bastien + */ +public class KernelEventLayoutStub extends DefaultEventLayout { + + /** + * Protected constructor + */ + protected KernelEventLayoutStub() { + super(); + } + + private static final IKernelAnalysisEventLayout INSTANCE = new KernelEventLayoutStub(); + + /** + * Get an instance of this event layout + * + * This object is completely immutable, so no need to create additional + * instances via the constructor. + * + * @return The instance + */ + public static IKernelAnalysisEventLayout getInstance() { + return INSTANCE; + } + +} diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/TmfXmlKernelTraceStub.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/TmfXmlKernelTraceStub.java new file mode 100644 index 0000000000..f8f2fa85fb --- /dev/null +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/TmfXmlKernelTraceStub.java @@ -0,0 +1,46 @@ +/******************************************************************************* + * Copyright (c) 2016 École Polytechnique de Montréal + * + * 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 org.eclipse.jdt.annotation.Nullable; +import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout; +import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelTrace; +import org.eclipse.tracecompass.tmf.tests.stubs.trace.xml.TmfXmlTraceStub; + +/** + * A trace stub that implements a kernel trace. It can add an event layout to + * the trace. + * + * @author Geneviève Bastien + */ +public class TmfXmlKernelTraceStub extends TmfXmlTraceStub implements IKernelTrace { + + private @Nullable IKernelAnalysisEventLayout fLayout; + + @Override + public IKernelAnalysisEventLayout getKernelEventLayout() { + IKernelAnalysisEventLayout layout = fLayout; + if (layout == null) { + return KernelEventLayoutStub.getInstance(); + } + return layout; + } + + /** + * Set the kernel event layout to use with this trace + * + * @param layout + * The event layout to use with this trace + */ + public void setKernelEventLayout(IKernelAnalysisEventLayout layout) { + fLayout = layout; + } + +} diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/package-info.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/package-info.java new file mode 100644 index 0000000000..eccfa6c33b --- /dev/null +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/package-info.java @@ -0,0 +1,11 @@ +/******************************************************************************* + * Copyright (c) 2016 École Polytechnique de Montréal + * + * 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 + *******************************************************************************/ + +@org.eclipse.jdt.annotation.NonNullByDefault +package org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace; diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/trace/DefaultEventLayout.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/trace/DefaultEventLayout.java index 87da71bbfd..b593e94995 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/trace/DefaultEventLayout.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/trace/DefaultEventLayout.java @@ -30,7 +30,7 @@ import com.google.common.collect.ImmutableList; * @author Alexandre Montplaisir * @since 1.0 */ -public class DefaultEventLayout implements IKernelAnalysisEventLayout{ +public class DefaultEventLayout implements IKernelAnalysisEventLayout { /* Event names */ private static final String IRQ_HANDLER_ENTRY = "irq_handler_entry"; //$NON-NLS-1$ @@ -87,8 +87,13 @@ public class DefaultEventLayout implements IKernelAnalysisEventLayout{ private static final String NOW = "now"; //$NON-NLS-1$ private static final String SOFT_EXPIRES = "softexpires"; //$NON-NLS-1$ - /** All instances are the same. Only provide a static instance getter */ - private DefaultEventLayout() { + /** + * Constructor, to be used by classes extending this one. To get an instance + * of this class, INSTANCE should be used. + * + * @since 2.0 + */ + protected DefaultEventLayout() { } /** diff --git a/lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/plugin.xml b/lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/plugin.xml index e563fb6f69..80c3e5a966 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/plugin.xml +++ b/lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/plugin.xml @@ -8,7 +8,7 @@ id="org.eclipse.tracecompass.lttng2.kernel.core.tests.kernelgraph" name="LTTng Stub Kernel Execution Graph"> + class="org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub"> diff --git a/lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/shared/org/eclipse/tracecompass/lttng2/lttng/kernel/core/tests/shared/vm/VmTraces.java b/lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/shared/org/eclipse/tracecompass/lttng2/lttng/kernel/core/tests/shared/vm/VmTraces.java index d44ce16f90..024bca40ec 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/shared/org/eclipse/tracecompass/lttng2/lttng/kernel/core/tests/shared/vm/VmTraces.java +++ b/lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/shared/org/eclipse/tracecompass/lttng2/lttng/kernel/core/tests/shared/vm/VmTraces.java @@ -22,11 +22,11 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Path; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub; import org.eclipse.tracecompass.lttng2.kernel.core.tests.Activator; import org.eclipse.tracecompass.tmf.core.event.TmfEvent; import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException; import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; -import org.eclipse.tracecompass.tmf.tests.stubs.trace.xml.TmfXmlTraceStub; /** * List the available virtual machine host and guest traces @@ -71,7 +71,7 @@ public enum VmTraces { * @return A TmfXmlTraceStub reference to this trace */ public @Nullable ITmfTrace getTrace() { - ITmfTrace trace = new TmfXmlTraceStub(); + ITmfTrace trace = new TmfXmlKernelTraceStub(); IStatus status = trace.validate(null, fPath.toOSString()); if (!status.isOK()) { return null; diff --git a/lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/src/org/eclipse/tracecompass/lttng2/kernel/core/tests/analysis/graph/LttngExecutionGraphTest.java b/lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/src/org/eclipse/tracecompass/lttng2/kernel/core/tests/analysis/graph/LttngExecutionGraphTest.java index 46f008c7a5..d7615e7542 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/src/org/eclipse/tracecompass/lttng2/kernel/core/tests/analysis/graph/LttngExecutionGraphTest.java +++ b/lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/src/org/eclipse/tracecompass/lttng2/kernel/core/tests/analysis/graph/LttngExecutionGraphTest.java @@ -23,11 +23,12 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.tracecompass.analysis.graph.core.base.IGraphWorker; import org.eclipse.tracecompass.analysis.graph.core.base.TmfEdge; +import org.eclipse.tracecompass.analysis.graph.core.base.TmfEdge.EdgeType; import org.eclipse.tracecompass.analysis.graph.core.base.TmfGraph; import org.eclipse.tracecompass.analysis.graph.core.base.TmfVertex; -import org.eclipse.tracecompass.analysis.graph.core.base.TmfEdge.EdgeType; import org.eclipse.tracecompass.analysis.graph.core.base.TmfVertex.EdgeDirection; import org.eclipse.tracecompass.analysis.graph.core.building.TmfGraphBuilderModule; +import org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub; import org.eclipse.tracecompass.internal.lttng2.kernel.core.analysis.graph.model.LttngWorker; import org.eclipse.tracecompass.lttng2.kernel.core.tests.Activator; import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule; @@ -37,7 +38,6 @@ import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal; import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils; -import org.eclipse.tracecompass.tmf.tests.stubs.trace.xml.TmfXmlTraceStub; import org.junit.Test; /** @@ -57,7 +57,7 @@ public class LttngExecutionGraphTest { * @return The trace with its graph module executed */ public ITmfTrace setUpTrace(String traceFile) { - ITmfTrace trace = new TmfXmlTraceStub(); + ITmfTrace trace = new TmfXmlKernelTraceStub(); IPath filePath = Activator.getAbsoluteFilePath(traceFile); IStatus status = trace.validate(null, filePath.toOSString()); if (!status.isOK()) { -- 2.34.1