</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="stubs"/>
<classpathentry kind="output" path="bin"/>
</classpath>
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
# Ericsson - Initial API and implementation
###############################################################################
-source.. = src/
+source.. = src/,\
+ stubs
output.. = bin/
bin.includes = META-INF/,\
.,\
name="CPU Usage Test Analysis">
<tracetype
applies="true"
- class="org.eclipse.tracecompass.tmf.tests.stubs.trace.xml.TmfXmlTraceStub">
+ class="org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub">
</tracetype>
</module>
<module
name="Linux Kernel Test Analysis">
<tracetype
applies="true"
- class="org.eclipse.tracecompass.tmf.tests.stubs.trace.xml.TmfXmlTraceStub">
+ class="org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub">
</tracetype>
</module>
<module
id="org.eclipse.tracecompass.analysis.os.linux.contextswitch"
name="Context switch test">
<tracetype
- class="org.eclipse.tracecompass.tmf.tests.stubs.trace.xml.TmfXmlTraceStub">
+ class="org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub">
</tracetype>
</module>
</extension>
-
+ <extension
+ point="org.eclipse.linuxtools.tmf.core.tracetype">
+ <type
+ category="org.eclipse.linuxtools.tmf.core.tests.category"
+ event_type="org.eclipse.tracecompass.tmf.core.event.TmfEvent"
+ id="org.eclipse.tracecompass.analysis.os.linux.core.kernel.trace.stub"
+ isDirectory="false"
+ name="XML Kernel Trace Stub"
+ trace_type="org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub">
+ </type>
+ </extension>
</plugin>
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;
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;
*/
@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()) {
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;
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;
*/
@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()) {
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;
/**
*/
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();
}
}
@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);
}
}
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;
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;
*/
@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()) {
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;
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;
// Test trace class definition
// ------------------------------------------------------------------------
- private static class TmfXmlTraceStubWithTidAspects extends TmfXmlTraceStub {
+ private static class TmfXmlTraceStubWithTidAspects extends TmfXmlKernelTraceStub {
public TmfXmlTraceStubWithTidAspects() {
super();
--- /dev/null
+/*******************************************************************************
+ * 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;
+ }
+
+}
--- /dev/null
+/*******************************************************************************
+ * 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;
+ }
+
+}
--- /dev/null
+/*******************************************************************************
+ * 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;
* @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$
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() {
}
/**
id="org.eclipse.tracecompass.lttng2.kernel.core.tests.kernelgraph"
name="LTTng Stub Kernel Execution Graph">
<tracetype
- class="org.eclipse.tracecompass.tmf.tests.stubs.trace.xml.TmfXmlTraceStub">
+ class="org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace.TmfXmlKernelTraceStub">
</tracetype>
</module>
</extension>
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
* @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;
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;
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;
/**
* @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()) {