org.eclipse.tracecompass.tmf.ctf.core,
org.eclipse.tracecompass.tmf.ctf.core.tests,
org.eclipse.tracecompass.statesystem.core,
- org.eclipse.tracecompass.segmentstore.core
+ org.eclipse.tracecompass.segmentstore.core,
+ org.eclipse.tracecompass.analysis.timing.core
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Import-Package: com.google.common.collect;version="10.0.1",
--- /dev/null
+/*******************************************************************************
+ * 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.tmf.analysis.xml.core.tests.stateprovider;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.tracecompass.analysis.timing.core.segmentstore.ISegmentStoreProvider;
+import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.stateprovider.TmfXmlStrings;
+import org.eclipse.tracecompass.segmentstore.core.ISegment;
+import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
+import org.eclipse.tracecompass.testtraces.ctf.CtfTestTrace;
+import org.eclipse.tracecompass.tmf.analysis.xml.core.tests.common.TmfXmlTestFiles;
+import org.junit.Test;
+
+/**
+ * Test suite for the XML pattern analysis. This class test the state system and
+ * the segment store generated
+ *
+ * @author Jean-Christian Kouame
+ */
+public class PatternProvidersTest extends XmlProviderTestBase {
+
+ @Override
+ protected CtfTestTrace getTrace() {
+ return CtfTestTrace.ARM_64_BIT_HEADER;
+ }
+
+ @Override
+ protected TmfXmlTestFiles getXmlFile() {
+ return TmfXmlTestFiles.VALID_PATTERN_FILE;
+ }
+
+ @Override
+ protected @NonNull String getAnalysisNodeName() {
+ return TmfXmlStrings.PATTERN;
+ }
+
+ /**
+ * Test the generated segment store
+ */
+ @Test
+ public void testSegmentStore() {
+ assertTrue(getModule().waitForCompletion(new NullProgressMonitor()));
+ ISegmentStore<@NonNull ISegment> ss = ((ISegmentStoreProvider) getModule()).getSegmentStore();
+ assertNotNull(ss);
+ assertFalse(ss.isEmpty());
+ }
+
+}
/*******************************************************************************
- * Copyright (c) 2013, 2014 École Polytechnique de Montréal
+ * Copyright (c) 2013, 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
* Contributors:
* Geneviève Bastien - Initial API and implementation
*******************************************************************************/
-
package org.eclipse.tracecompass.tmf.analysis.xml.core.tests.stateprovider;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.stateprovider.TmfXmlStrings;
-import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.stateprovider.XmlStateSystemModule;
-import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
import org.eclipse.tracecompass.testtraces.ctf.CtfTestTrace;
import org.eclipse.tracecompass.tmf.analysis.xml.core.tests.common.TmfXmlTestFiles;
-import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException;
-import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
-import org.eclipse.tracecompass.tmf.ctf.core.tests.shared.CtfTmfTestTraceUtils;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
/**
* Test suite for the xml state providers
*
* @author Geneviève Bastien
*/
-public class StateProviderTest {
-
- private ITmfTrace fTrace;
- private XmlStateSystemModule fModule;
-
- /**
- * Setup the test fields
- */
- @Before
- public void setupTest() {
- /* Initialize the trace */
- ITmfTrace trace = CtfTmfTestTraceUtils.getTrace(CtfTestTrace.KERNEL);
- fTrace = trace;
+public class StateProviderTest extends XmlProviderTestBase {
- /* Initialize the state provider module */
- Document doc = TmfXmlTestFiles.VALID_FILE.getXmlDocument();
- assertNotNull(doc);
-
- /* get State Providers modules */
- NodeList stateproviderNodes = doc.getElementsByTagName(TmfXmlStrings.STATE_PROVIDER);
-
- Element node = (Element) stateproviderNodes.item(0);
- fModule = new XmlStateSystemModule();
- String moduleId = node.getAttribute(TmfXmlStrings.ID);
- assertNotNull(moduleId);
- fModule.setId(moduleId);
-
- fModule.setXmlFile(new Path(TmfXmlTestFiles.VALID_FILE.getFile().getAbsolutePath()));
-
- try {
- fModule.setTrace(trace);
- fModule.schedule();
- } catch (TmfAnalysisException e) {
- fail("Cannot set trace " + e.getMessage());
- }
+ @Override
+ protected @NonNull String getAnalysisNodeName() {
+ return TmfXmlStrings.STATE_PROVIDER;
}
- /**
- * Cleanup after the test
- */
- @After
- public void cleanupTest() {
- fTrace.dispose();
+ @Override
+ protected TmfXmlTestFiles getXmlFile() {
+ return TmfXmlTestFiles.VALID_FILE;
}
- /**
- * Test the building of the state system
- */
- @Test
- public void testStateSystem() {
- assertTrue(fModule.waitForCompletion(new NullProgressMonitor()));
- ITmfStateSystem ss = fModule.getStateSystem();
- assertNotNull(ss);
-
- List<Integer> quarks = ss.getQuarks("*");
- assertFalse(quarks.isEmpty());
+ @Override
+ protected @NonNull CtfTestTrace getTrace() {
+ return CtfTestTrace.KERNEL;
}
-}
+}
\ No newline at end of file
--- /dev/null
+/*******************************************************************************
+ * 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.tmf.analysis.xml.core.tests.stateprovider;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.List;
+
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.pattern.stateprovider.XmlPatternAnalysis;
+import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.stateprovider.TmfXmlStrings;
+import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.stateprovider.XmlStateSystemModule;
+import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
+import org.eclipse.tracecompass.testtraces.ctf.CtfTestTrace;
+import org.eclipse.tracecompass.tmf.analysis.xml.core.tests.common.TmfXmlTestFiles;
+import org.eclipse.tracecompass.tmf.core.analysis.TmfAbstractAnalysisModule;
+import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException;
+import org.eclipse.tracecompass.tmf.core.statesystem.ITmfAnalysisModuleWithStateSystems;
+import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
+import org.eclipse.tracecompass.tmf.ctf.core.tests.shared.CtfTmfTestTraceUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+/**
+ * Base unit test for XML analyses
+ *
+ * @author Jean-Christian Kouame
+ */
+public abstract class XmlProviderTestBase {
+
+ private ITmfTrace fTrace;
+ private TmfAbstractAnalysisModule fModule;
+
+ /**
+ * Setup the test fields
+ */
+ @Before
+ public void setupTest() {
+ /* Initialize the trace */
+ ITmfTrace trace = CtfTmfTestTraceUtils.getTrace(getTrace());
+ fTrace = trace;
+
+ /* Initialize the state provider module */
+ Document doc = getXmlFile().getXmlDocument();
+ assertNotNull(doc);
+
+ /* get State Providers modules */
+ NodeList analysisNodes = doc.getElementsByTagName(getAnalysisNodeName());
+
+ Element node = (Element) analysisNodes.item(0);
+ switch (getAnalysisNodeName()) {
+ case TmfXmlStrings.PATTERN:
+ fModule = new XmlPatternAnalysis();
+ ((XmlPatternAnalysis) fModule).setXmlFile(new Path(getXmlFile().getFile().getAbsolutePath()));
+ break;
+ case TmfXmlStrings.STATE_PROVIDER:
+ fModule = new XmlStateSystemModule();
+ ((XmlStateSystemModule) fModule).setXmlFile(new Path(getXmlFile().getFile().getAbsolutePath()));
+ break;
+
+ default:
+ fail();
+ }
+ String moduleId = node.getAttribute(TmfXmlStrings.ID);
+ assertNotNull(moduleId);
+ fModule.setId(moduleId);
+
+ try {
+ fModule.setTrace(trace);
+ fModule.schedule();
+ } catch (TmfAnalysisException e) {
+ fail("Cannot set trace " + e.getMessage());
+ }
+ }
+
+ /**
+ * The node name of the analysis in the file
+ *
+ * @return The name
+ */
+ protected abstract @NonNull String getAnalysisNodeName();
+
+ /**
+ * Get the XML file this test use
+ *
+ * @return The XML file
+ */
+ protected abstract TmfXmlTestFiles getXmlFile();
+
+ /**
+ * Get the trace this test use
+ *
+ * @return The trace
+ */
+ protected abstract @NonNull CtfTestTrace getTrace();
+
+ /**
+ * Cleanup after the test
+ */
+ @After
+ public void cleanupTest() {
+ fTrace.dispose();
+ }
+
+ /**
+ * Test the building of the state system
+ */
+ @Test
+ public void testStateSystem() {
+ assertTrue(fModule instanceof ITmfAnalysisModuleWithStateSystems);
+ assertTrue(fModule.waitForCompletion(new NullProgressMonitor()));
+ ITmfStateSystem ss = ((ITmfAnalysisModuleWithStateSystems) fModule).getStateSystem(fModule.getId());
+ assertNotNull(ss);
+
+ List<Integer> quarks = ss.getQuarks("*");
+ assertFalse(quarks.isEmpty());
+ }
+
+ /**
+ * Get the module of this analysis
+ *
+ * @return The module
+ */
+ protected TmfAbstractAnalysisModule getModule() {
+ return fModule;
+ }
+
+}
org.eclipse.tracecompass.internal.tmf.analysis.xml.core.model.readonly;x-friends:="org.eclipse.tracecompass.tmf.analysis.xml.core.tests,org.eclipse.tracecompass.tmf.analysis.xml.ui",
org.eclipse.tracecompass.internal.tmf.analysis.xml.core.model.readwrite;x-friends:="org.eclipse.tracecompass.tmf.analysis.xml.core.tests,org.eclipse.tracecompass.tmf.analysis.xml.ui",
org.eclipse.tracecompass.internal.tmf.analysis.xml.core.module;x-friends:="org.eclipse.tracecompass.tmf.analysis.xml.core.tests,org.eclipse.tracecompass.tmf.analysis.xml.ui",
- org.eclipse.tracecompass.internal.tmf.analysis.xml.core.pattern.stateprovider;x-friends:="org.eclipse.tracecompass.tmf.analysis.xml.ui",
+ org.eclipse.tracecompass.internal.tmf.analysis.xml.core.pattern.stateprovider;x-friends:="org.eclipse.tracecompass.tmf.analysis.xml.ui,org.eclipse.tracecompass.tmf.analysis.xml.core.tests",
org.eclipse.tracecompass.internal.tmf.analysis.xml.core.segment;x-friends:="org.eclipse.tracecompass.tmf.analysis.xml.core.tests",
org.eclipse.tracecompass.internal.tmf.analysis.xml.core.stateprovider;x-friends:="org.eclipse.tracecompass.tmf.analysis.xml.core.tests,org.eclipse.tracecompass.tmf.analysis.xml.ui"
Import-Package: com.google.common.collect