ss: Move plugins to Trace Compass namespace
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core.tests / src / org / eclipse / linuxtools / tmf / core / tests / analysis / AnalysisModuleHelperTest.java
index 609b3405096198307c3b01747c3298425cae259d..1c9ff0b8daefa5d503c4628b3249220c37949b0e 100644 (file)
@@ -8,6 +8,7 @@
  *
  * Contributors:
  *   Geneviève Bastien - Initial API and implementation
+ *   Mathieu Rail - Added tests for getting a module's requirements
  *******************************************************************************/
 
 package org.eclipse.linuxtools.tmf.core.tests.analysis;
@@ -19,26 +20,35 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.linuxtools.tmf.core.analysis.IAnalysisModule;
 import org.eclipse.linuxtools.tmf.core.analysis.IAnalysisModuleHelper;
 import org.eclipse.linuxtools.tmf.core.analysis.Messages;
 import org.eclipse.linuxtools.tmf.core.analysis.TmfAnalysisManager;
 import org.eclipse.linuxtools.tmf.core.analysis.TmfAnalysisModuleHelperConfigElement;
+import org.eclipse.linuxtools.tmf.core.analysis.TmfAnalysisRequirement;
 import org.eclipse.linuxtools.tmf.core.exceptions.TmfAnalysisException;
 import org.eclipse.linuxtools.tmf.core.tests.shared.TmfTestTrace;
 import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
 import org.eclipse.linuxtools.tmf.core.trace.TmfTrace;
 import org.eclipse.linuxtools.tmf.tests.stubs.analysis.TestAnalysis;
 import org.eclipse.linuxtools.tmf.tests.stubs.analysis.TestAnalysis2;
+import org.eclipse.linuxtools.tmf.tests.stubs.analysis.TestRequirementAnalysis;
 import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub;
 import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub2;
+import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub3;
 import org.eclipse.osgi.util.NLS;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.osgi.framework.Bundle;
 
+import com.google.common.collect.ImmutableSet;
+
 /**
  * Test suite for the {@link TmfAnalysisModuleHelperConfigElement} class
  *
@@ -48,6 +58,7 @@ public class AnalysisModuleHelperTest {
 
     private IAnalysisModuleHelper fModule;
     private IAnalysisModuleHelper fModuleOther;
+    private IAnalysisModuleHelper fReqModule;
     private ITmfTrace fTrace;
 
     /**
@@ -61,6 +72,9 @@ public class AnalysisModuleHelperTest {
         fModuleOther = TmfAnalysisManager.getAnalysisModule(AnalysisManagerTest.MODULE_SECOND);
         assertNotNull(fModuleOther);
         assertTrue(fModuleOther instanceof TmfAnalysisModuleHelperConfigElement);
+        fReqModule = TmfAnalysisManager.getAnalysisModule(AnalysisManagerTest.MODULE_REQ);
+        assertNotNull(fReqModule);
+        assertTrue(fReqModule instanceof TmfAnalysisModuleHelperConfigElement);
         fTrace = TmfTestTrace.A_TEST_10K2.getTraceAsStub2();
     }
 
@@ -95,7 +109,8 @@ public class AnalysisModuleHelperTest {
     }
 
     /**
-     * Test the {@link TmfAnalysisModuleHelperConfigElement#appliesToTraceType(Class)}
+     * Test the
+     * {@link TmfAnalysisModuleHelperConfigElement#appliesToTraceType(Class)}
      * method for the 2 modules
      */
     @Test
@@ -104,35 +119,34 @@ public class AnalysisModuleHelperTest {
         assertFalse(fModule.appliesToTraceType(TmfTrace.class));
         assertTrue(fModule.appliesToTraceType(TmfTraceStub.class));
         assertTrue(fModule.appliesToTraceType(TmfTraceStub2.class));
+        assertFalse(fModule.appliesToTraceType(TmfTraceStub3.class));
 
         /* stub module 2 */
         assertFalse(fModuleOther.appliesToTraceType(TmfTrace.class));
         assertFalse(fModuleOther.appliesToTraceType(TmfTraceStub.class));
         assertTrue(fModuleOther.appliesToTraceType(TmfTraceStub2.class));
+        assertTrue(fModuleOther.appliesToTraceType(TmfTraceStub3.class));
     }
 
     /**
-     * Test the {@link TmfAnalysisModuleHelperConfigElement#newModule(ITmfTrace)} method
+     * Test the
+     * {@link TmfAnalysisModuleHelperConfigElement#newModule(ITmfTrace)} method
      * for the 2 modules
      */
     @Test
     public void testNewModule() {
         /* Test analysis module with traceStub */
         Exception exception = null;
-        IAnalysisModule module = null;
-        try {
-            module = fModule.newModule(TmfTestTrace.A_TEST_10K.getTrace());
+        try (IAnalysisModule module = fModule.newModule(TmfTestTrace.A_TEST_10K.getTrace());) {
+            assertNotNull(module);
+            assertTrue(module instanceof TestAnalysis);
         } catch (TmfAnalysisException e) {
             exception = e;
         }
         assertNull(exception);
-        assertNotNull(module);
-        assertTrue(module instanceof TestAnalysis);
 
         /* TestAnalysis2 module with trace, should return an exception */
-        module = null;
-        try {
-            module = fModuleOther.newModule(TmfTestTrace.A_TEST_10K.getTrace());
+        try (IAnalysisModule module = fModuleOther.newModule(TmfTestTrace.A_TEST_10K.getTrace());) {
         } catch (TmfAnalysisException e) {
             exception = e;
         }
@@ -141,15 +155,13 @@ public class AnalysisModuleHelperTest {
 
         /* TestAnalysis2 module with a TraceStub2 */
         exception = null;
-        module = null;
-        try {
-            module = fModuleOther.newModule(fTrace);
+        try (IAnalysisModule module = fModuleOther.newModule(fTrace);) {
+            assertNotNull(module);
+            assertTrue(module instanceof TestAnalysis2);
         } catch (TmfAnalysisException e) {
             exception = e;
         }
         assertNull(exception);
-        assertNotNull(module);
-        assertTrue(module instanceof TestAnalysis2);
     }
 
     /**
@@ -164,48 +176,95 @@ public class AnalysisModuleHelperTest {
          * able to set the parameter
          */
         IAnalysisModuleHelper helper = TmfAnalysisManager.getAnalysisModule(AnalysisManagerTest.MODULE_PARAM);
-        IAnalysisModule module;
-        try {
-            module = helper.newModule(trace);
+        try (IAnalysisModule module = helper.newModule(trace);) {
+            assertNull(module.getParameter(TestAnalysis.PARAM_TEST));
+            module.setParameter(TestAnalysis.PARAM_TEST, 1);
+            assertEquals(1, module.getParameter(TestAnalysis.PARAM_TEST));
+
         } catch (TmfAnalysisException e1) {
             fail(e1.getMessage());
             return;
         }
 
-        assertNull(module.getParameter(TestAnalysis.PARAM_TEST));
-        module.setParameter(TestAnalysis.PARAM_TEST, 1);
-        assertEquals(1, module.getParameter(TestAnalysis.PARAM_TEST));
-
         /* This module has a parameter with default value */
         helper = TmfAnalysisManager.getAnalysisModule(AnalysisManagerTest.MODULE_PARAM_DEFAULT);
-        try {
-            module = helper.newModule(trace);
+        try (IAnalysisModule module = helper.newModule(trace);) {
+            assertEquals(3, module.getParameter(TestAnalysis.PARAM_TEST));
+            module.setParameter(TestAnalysis.PARAM_TEST, 1);
+            assertEquals(1, module.getParameter(TestAnalysis.PARAM_TEST));
+
         } catch (TmfAnalysisException e1) {
             fail(e1.getMessage());
             return;
         }
-        assertEquals(3, module.getParameter(TestAnalysis.PARAM_TEST));
-        module.setParameter(TestAnalysis.PARAM_TEST, 1);
-        assertEquals(1, module.getParameter(TestAnalysis.PARAM_TEST));
 
         /*
          * This module does not have a parameter so setting it should throw an
          * error
          */
         helper = TmfAnalysisManager.getAnalysisModule(AnalysisManagerTest.MODULE_SECOND);
-        try {
-            module = helper.newModule(fTrace);
+        Exception exception = null;
+        try (IAnalysisModule module = helper.newModule(fTrace);) {
+
+            assertNull(module.getParameter(TestAnalysis.PARAM_TEST));
+
+            try {
+                module.setParameter(TestAnalysis.PARAM_TEST, 1);
+            } catch (RuntimeException e) {
+                exception = e;
+            }
         } catch (TmfAnalysisException e1) {
             fail(e1.getMessage());
             return;
         }
-        assertNull(module.getParameter(TestAnalysis.PARAM_TEST));
-        Exception exception = null;
-        try {
-            module.setParameter(TestAnalysis.PARAM_TEST, 1);
-        } catch (RuntimeException e) {
-            exception = e;
-        }
         assertNotNull(exception);
     }
+
+    /**
+     * Test for the
+     * {@link TmfAnalysisModuleHelperConfigElement#getValidTraceTypes} method
+     */
+    @Test
+    public void testGetValidTraceTypes() {
+        Set<Class<? extends ITmfTrace>> expected = ImmutableSet.of((Class<? extends ITmfTrace>) TmfTraceStub.class, TmfTraceStub2.class, TmfTraceStub3.class);
+        Iterable<Class<? extends ITmfTrace>> traceTypes = fReqModule.getValidTraceTypes();
+        assertEquals(expected, traceTypes);
+    }
+
+    /**
+     * Test for the
+     * {@link TmfAnalysisModuleHelperConfigElement#getAnalysisRequirements}
+     * method
+     */
+    @Test
+    public void testGetRequirements() {
+        Iterable<TmfAnalysisRequirement> requirements = fReqModule.getAnalysisRequirements();
+        assertNotNull(requirements);
+
+        Map<String, TmfAnalysisRequirement> rMap = new HashMap<>();
+
+        for (TmfAnalysisRequirement req : requirements) {
+            assertFalse(rMap.containsKey(req.getType()));
+            rMap.put(req.getType(), req);
+        }
+        assertEquals(2, rMap.size());
+
+        /* Test if all types and values have been obtained */
+        TmfAnalysisRequirement req = rMap.get(TestRequirementAnalysis.EVENT_TYPE);
+        assertNotNull(req);
+
+        Set<String> values = req.getValues();
+        assertEquals(3, values.size());
+        assertTrue(values.contains(TestRequirementAnalysis.EXIT_SYSCALL));
+        assertTrue(values.contains(TestRequirementAnalysis.SCHED_SWITCH));
+        assertTrue(values.contains(TestRequirementAnalysis.SCHED_WAKEUP));
+
+        req = rMap.get(TestRequirementAnalysis.FIELD_TYPE);
+        assertNotNull(req);
+
+        values = req.getValues();
+        assertEquals(2, values.size());
+        assertTrue(values.contains(TestRequirementAnalysis.PID));
+        assertTrue(values.contains(TestRequirementAnalysis.TID));
+    }
 }
This page took 0.027513 seconds and 5 git commands to generate.