TMF: bug 438949: fix the traceTypeApplies method in analysis module helper
authorGeneviève Bastien <gbastien+lttng@versatic.net>
Mon, 7 Jul 2014 17:11:52 +0000 (13:11 -0400)
committerGenevieve Bastien <gbastien+lttng@versatic.net>
Thu, 10 Jul 2014 14:16:22 +0000 (10:16 -0400)
Analysis modules described in configuration elements can now support correctly
many trace type elements. And it makes sure the applies="false" is treated
correctly as well.

Change-Id: I8e940bdde94feaa709ccac48e671aa5dced1a5c5
Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/29564
Tested-by: Hudson CI
Reviewed-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Reviewed-by: Vincent Perot <vincent.perot@ericsson.com>
org.eclipse.linuxtools.tmf.core.tests/plugin.xml
org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/analysis/AnalysisModuleHelperTest.java
org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/tests/stubs/trace/TmfTraceStub2.java
org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/tests/stubs/trace/TmfTraceStub3.java [new file with mode: 0644]
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/analysis/TmfAnalysisModuleHelperConfigElement.java

index 686156a7f31d502a4749c8d378afcb63659fa68c..bf011182748b29ae2eeb92fb20a11483cf16e025 100644 (file)
          <tracetype
                class="org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub">
          </tracetype>
+         <tracetype
+               applies="false"
+               class="org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub3">
+         </tracetype>
       </module>
       <module
          id="org.eclipse.linuxtools.tmf.core.tests.analysis.test2"
          name="Test other analysis"
          analysis_module="org.eclipse.linuxtools.tmf.tests.stubs.analysis.TestAnalysis2"
          automatic="true">
+         <tracetype
+               applies="true"
+               class="org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub3">
+         </tracetype>
          <tracetype
                applies="true"
                class="org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub2">
             name="TMF Tests"
             trace_type="org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub">
       </type>
+      <type
+            category="org.eclipse.linuxtools.tmf.core.tests.category"
+            event_type="org.eclipse.linuxtools.tmf.core.event.TmfEvent"
+            id="org.eclipse.linuxtools.tmf.core.tests.secondtt"
+            name="TMF Tests 2"
+            trace_type="org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub2">
+      </type>
+      <type
+            category="org.eclipse.linuxtools.tmf.core.tests.category"
+            event_type="org.eclipse.linuxtools.tmf.core.event.TmfEvent"
+            id="org.eclipse.linuxtools.tmf.core.tests.thirdtt"
+            name="TMF Tests 3"
+            trace_type="org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub3">
+      </type>
       <experiment
             category="org.eclipse.linuxtools.tmf.core.tests.category"
             id="org.eclipse.linuxtools.tmf.core.tests.experimenttype"
index 1584614888644d9e5bbad4be1cb2d5ac28bffdc4..1c9ff0b8daefa5d503c4628b3249220c37949b0e 100644 (file)
@@ -32,8 +32,6 @@ 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.project.model.TmfTraceType;
-import org.eclipse.linuxtools.tmf.core.project.model.TraceTypeHelper;
 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;
@@ -42,12 +40,15 @@ 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
  *
@@ -55,8 +56,6 @@ import org.osgi.framework.Bundle;
  */
 public class AnalysisModuleHelperTest {
 
-    private static final String VALID_TRACE_TYPE = "org.eclipse.linuxtools.tmf.core.tests.tracetype";
-
     private IAnalysisModuleHelper fModule;
     private IAnalysisModuleHelper fModuleOther;
     private IAnalysisModuleHelper fReqModule;
@@ -120,11 +119,13 @@ 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));
     }
 
     /**
@@ -225,16 +226,9 @@ public class AnalysisModuleHelperTest {
      */
     @Test
     public void testGetValidTraceTypes() {
-        TraceTypeHelper traceTypeHelper = TmfTraceType.getTraceType(VALID_TRACE_TYPE);
-        int traceTypeCount = 0;
+        Set<Class<? extends ITmfTrace>> expected = ImmutableSet.of((Class<? extends ITmfTrace>) TmfTraceStub.class, TmfTraceStub2.class, TmfTraceStub3.class);
         Iterable<Class<? extends ITmfTrace>> traceTypes = fReqModule.getValidTraceTypes();
-        for (Class<? extends ITmfTrace> traceType : traceTypes) {
-            assertTrue(fReqModule.appliesToTraceType(traceType));
-            assertNotNull(traceTypeHelper);
-            assertEquals(traceTypeHelper.getTraceClass(), traceType);
-            traceTypeCount++;
-        }
-        assertEquals(1, traceTypeCount);
+        assertEquals(expected, traceTypes);
     }
 
     /**
index 657f8558f8f071a53e2eb2e7447967d91f90d825..30b19c5727d900aa97c30d92966858a85be93a4c 100644 (file)
@@ -22,6 +22,13 @@ import org.eclipse.linuxtools.tmf.core.trace.ITmfEventParser;
  */
 public class TmfTraceStub2 extends TmfTraceStub {
 
+    /**
+     * Default constructor
+     */
+    public TmfTraceStub2() {
+        super();
+    }
+
     /**
      * Constructor to specify the parser and indexer. The streaming interval
      * will be 0.
diff --git a/org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/tests/stubs/trace/TmfTraceStub3.java b/org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/tests/stubs/trace/TmfTraceStub3.java
new file mode 100644 (file)
index 0000000..c619eec
--- /dev/null
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2014 É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
+ *
+ * Contributors:
+ *   Geneviève Bastien - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.linuxtools.tmf.tests.stubs.trace;
+
+/**
+ * Another stub trace class for unit tests who need more than one stub class.
+ *
+ * @author Geneviève Bastien
+ */
+public class TmfTraceStub3 extends TmfTraceStub {
+
+    /**
+     * Default constructor
+     */
+    public TmfTraceStub3() {
+        super();
+    }
+
+}
index 2912283d58ed958e04ece8b27059ba319b279654..4b73977b35fde239ed3cef18377571eb654371c8 100644 (file)
@@ -106,9 +106,12 @@ public class TmfAnalysisModuleHelperConfigElement implements IAnalysisModuleHelp
                     classApplies = Boolean.parseBoolean(classAppliesVal);
                 }
                 if (classApplies) {
-                    applies = applyclass.isAssignableFrom(traceclass);
+                    applies |= applyclass.isAssignableFrom(traceclass);
                 } else {
-                    applies = !applyclass.isAssignableFrom(traceclass);
+                    /* If the trace type does not apply, reset the applies variable to false */
+                    if (applyclass.isAssignableFrom(traceclass)) {
+                        applies = false;
+                    }
                 }
             } catch (ClassNotFoundException e) {
                 Activator.logError("Error in applies to trace", e); //$NON-NLS-1$
@@ -139,6 +142,7 @@ public class TmfAnalysisModuleHelperConfigElement implements IAnalysisModuleHelp
             return module.getAnalysisRequirements();
         }
         return Collections.EMPTY_SET;
+
     }
 
     // ---------------------------------------
@@ -197,5 +201,6 @@ public class TmfAnalysisModuleHelperConfigElement implements IAnalysisModuleHelp
             return ret;
         }
         return getHelpText();
+
     }
 }
This page took 0.030695 seconds and 5 git commands to generate.