You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2013/10/16 12:29:56 UTC

svn commit: r1532708 - in /felix/trunk/dependencymanager/test: ./ src/main/java/org/apache/felix/dm/test/components/ src/test/java/org/apache/felix/dm/test/integration/annotations/ src/test/java/org/apache/felix/dm/test/integration/api/ src/test/java/o...

Author: pderop
Date: Wed Oct 16 10:29:56 2013
New Revision: 1532708

URL: http://svn.apache.org/r1532708
Log:
code cleanup. Fixed TestBase.checkError. Cleaned pom.

Modified:
    felix/trunk/dependencymanager/test/pom.xml
    felix/trunk/dependencymanager/test/src/main/java/org/apache/felix/dm/test/components/BundleAdapterServiceTestWithPublisher.java
    felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/BundleDependencyAnnotationTest.java
    felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/CompositeAnnotationsTest.java
    felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/MultipleAnnotationsTest.java
    felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/ResourceAnnotationTest.java
    felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/SimpleAnnotationsTest.java
    felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/AspectRaceTest.java
    felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/MultipleExtraDependencyTest2.java
    felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/common/TestBase.java

Modified: felix/trunk/dependencymanager/test/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/pom.xml?rev=1532708&r1=1532707&r2=1532708&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/pom.xml (original)
+++ felix/trunk/dependencymanager/test/pom.xml Wed Oct 16 10:29:56 2013
@@ -146,7 +146,7 @@
 				<configuration>
 					<instructions>
 						<Bundle-Name>Apache Felix Dependency Manager Annotations Tests</Bundle-Name>
-						<Bundle-SymbolicName>org.apache.felix.dependencymanager.test.components</Bundle-SymbolicName>
+						<Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
 						<Export-Package>org.apache.felix.dm.test.components</Export-Package>
 					</instructions>
 				</configuration>
@@ -195,6 +195,10 @@
 									<name>project.bundle.file</name>
 									<value>${bundle.file.name}</value>
 								</property>
+								<property>
+									<name>project.bundle.symbolicName</name>
+									<value>${pom.artifactId}</value>
+								</property>								
 							</systemProperties>
 							<excludes>
 								<exclude>**/components/*</exclude>

Modified: felix/trunk/dependencymanager/test/src/main/java/org/apache/felix/dm/test/components/BundleAdapterServiceTestWithPublisher.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/main/java/org/apache/felix/dm/test/components/BundleAdapterServiceTestWithPublisher.java?rev=1532708&r1=1532707&r2=1532708&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/main/java/org/apache/felix/dm/test/components/BundleAdapterServiceTestWithPublisher.java (original)
+++ felix/trunk/dependencymanager/test/src/main/java/org/apache/felix/dm/test/components/BundleAdapterServiceTestWithPublisher.java Wed Oct 16 10:29:56 2013
@@ -59,8 +59,7 @@ public class BundleAdapterServiceTestWit
             if ("org.apache.felix.dependencymanager".equals(properties.get("Bundle-SymbolicName"))) {
                 m_sequencer.step(4);
             } else {
-                Thread.dumpStack();
-                System.out.println(properties);
+                System.out.println("Consumer.bind: properties=" + properties);
             }
         }
 

Modified: felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/BundleDependencyAnnotationTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/BundleDependencyAnnotationTest.java?rev=1532708&r1=1532707&r2=1532708&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/BundleDependencyAnnotationTest.java (original)
+++ felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/BundleDependencyAnnotationTest.java Wed Oct 16 10:29:56 2013
@@ -43,7 +43,7 @@ public class BundleDependencyAnnotationT
         Ensure e = new Ensure();
         ServiceRegistration sr = register(e, BundleDependencyAnnotation.ENSURE_CONSUMER);
         e.waitForStep(1, 10000);
-        stopTestComponentsBundle();
+        stopTestBundle();
         e.waitForStep(2, 10000);
         sr.unregister();
     }

Modified: felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/CompositeAnnotationsTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/CompositeAnnotationsTest.java?rev=1532708&r1=1532707&r2=1532708&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/CompositeAnnotationsTest.java (original)
+++ felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/CompositeAnnotationsTest.java Wed Oct 16 10:29:56 2013
@@ -44,7 +44,7 @@ public class CompositeAnnotationsTest ex
         ServiceRegistration sr2 = register(e, Dependency1.ENSURE);
         ServiceRegistration sr3 = register(e, Dependency2.ENSURE);
         e.waitForStep(4, 10000);
-        stopTestComponentsBundle();
+        stopTestBundle();
         e.waitForStep(12, 10000);
         sr3.unregister();
         sr2.unregister();

Modified: felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/MultipleAnnotationsTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/MultipleAnnotationsTest.java?rev=1532708&r1=1532707&r2=1532708&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/MultipleAnnotationsTest.java (original)
+++ felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/MultipleAnnotationsTest.java Wed Oct 16 10:29:56 2013
@@ -40,7 +40,7 @@ public class MultipleAnnotationsTest ext
         Ensure e = new Ensure();
         ServiceRegistration sr = register(e, MultipleAnnotations.ENSURE);
         e.waitForStep(7, 10000);
-        stopTestComponentsBundle();
+        stopTestBundle();
         // And check if the test.annotation bundle has been deactivated orderly
         e.waitForStep(11, 10000);
         sr.unregister();

Modified: felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/ResourceAnnotationTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/ResourceAnnotationTest.java?rev=1532708&r1=1532707&r2=1532708&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/ResourceAnnotationTest.java (original)
+++ felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/ResourceAnnotationTest.java Wed Oct 16 10:29:56 2013
@@ -44,7 +44,7 @@ public class ResourceAnnotationTest exte
         Ensure e = new Ensure();
         ServiceRegistration sr = register(e, ResourceAnnotation.ENSURE_RESOURCE);
         ServiceRegistration sr2 = register(e, ResourceAnnotation.ENSURE_PROVIDER);
-        stopTestComponentsBundle();
+        stopTestBundle();
         e.waitForStep(1, 10000);
         sr.unregister();
         sr2.unregister();
@@ -58,7 +58,7 @@ public class ResourceAnnotationTest exte
         Ensure e = new Ensure();
         ServiceRegistration sr = register(e, ResourceAnnotation.ENSURE_FIELD);
         ServiceRegistration sr2 = register(e, ResourceAnnotation.ENSURE_PROVIDER);
-        stopTestComponentsBundle();
+        stopTestBundle();
         e.waitForStep(1, 10000);
         sr.unregister();
         sr2.unregister();
@@ -73,7 +73,7 @@ public class ResourceAnnotationTest exte
         Ensure e = new Ensure();
         ServiceRegistration sr = register(e, ResourceAnnotation.ENSURE_ADAPTER);
         ServiceRegistration sr2 = register(e, ResourceAnnotation.ENSURE_PROVIDER);
-        stopTestComponentsBundle();
+        stopTestBundle();
         e.waitForStep(2, 10000);
         e.ensure();
         sr.unregister();

Modified: felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/SimpleAnnotationsTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/SimpleAnnotationsTest.java?rev=1532708&r1=1532707&r2=1532708&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/SimpleAnnotationsTest.java (original)
+++ felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/annotations/SimpleAnnotationsTest.java Wed Oct 16 10:29:56 2013
@@ -49,6 +49,6 @@ public class SimpleAnnotationsTest exten
         // And check if components have been deactivated orderly.
         e.waitForStep(10, 10000);
         e.ensure();
-        stopTestComponentsBundle();
+        stopTestBundle();
     }
 }

Modified: felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/AspectRaceTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/AspectRaceTest.java?rev=1532708&r1=1532707&r2=1532708&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/AspectRaceTest.java (original)
+++ felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/AspectRaceTest.java Wed Oct 16 10:29:56 2013
@@ -86,11 +86,11 @@ public class AspectRaceTest extends Test
 
 				if ((loop) % 100 == 0) {
 					warn("Performed " + loop + " tests.");
-				}
-			}
+				}				
 
-			if (super.errorsLogged()) {
-				Assert.assertFalse("Test failed.", false);
+	            if (super.errorsLogged()) {
+	                throw new IllegalStateException("Race test interrupted (some error occured, see previous logs)");
+	            }
 			}
 		}
 

Modified: felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/MultipleExtraDependencyTest2.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/MultipleExtraDependencyTest2.java?rev=1532708&r1=1532707&r2=1532708&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/MultipleExtraDependencyTest2.java (original)
+++ felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/MultipleExtraDependencyTest2.java Wed Oct 16 10:29:56 2013
@@ -156,15 +156,15 @@ public class MultipleExtraDependencyTest
         volatile ServiceProvider2 m_serviceProvider2;
         volatile ServiceDependency m_d1, m_d2;
 
-        public void init(Component s)
+        public void init(Component c)
         {
-            DependencyManager m = s.getDependencyManager();
-            s.add(m_d1 = m.createServiceDependency()
+            DependencyManager m = c.getDependencyManager();
+            c.add(m_d1 = m.createServiceDependency()
                   .setService(Sequencer.class)
                   .setRequired(true)
                   .setInstanceBound(true)
                   .setAutoConfig("m_sequencer"));
-            s.add(m_d2 = m.createServiceDependency()
+            c.add(m_d2 = m.createServiceDependency()
                   .setService(ServiceProvider2.class)
                   .setRequired(true)
                   .setInstanceBound(true)
@@ -205,15 +205,16 @@ public class MultipleExtraDependencyTest
         volatile Runnable m_runnable;
         volatile ServiceDependency m_d1, m_d2;
 
-        public void init(Component s)
+        public void init(Component c)
         {
-            DependencyManager m = s.getDependencyManager();
-            s.add(m_d1 = m.createServiceDependency()
+            System.out.println("ServiceProvider2.init");
+            DependencyManager m = c.getDependencyManager();
+            c.add(m_d1 = m.createServiceDependency()
                   .setService(Runnable.class, "(foo=bar)")
                   .setRequired(false)
                   .setInstanceBound(true)
                   .setAutoConfig("m_runnable"));
-            s.add(m_d2 = m.createServiceDependency()
+            c.add(m_d2 = m.createServiceDependency()
                   .setService(Sequencer.class)
                   .setRequired(true)
                   .setInstanceBound(true)
@@ -229,6 +230,7 @@ public class MultipleExtraDependencyTest
 
         void start()
         {
+            System.out.println("ServiceProvider2.start: m_runnable=" + m_runnable + ", m_sequencer = " + m_sequencer);
             m_sequencer.step(3);
             m_runnable.run(); // NullObject
         }

Modified: felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/common/TestBase.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/common/TestBase.java?rev=1532708&r1=1532707&r2=1532708&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/common/TestBase.java (original)
+++ felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/common/TestBase.java Wed Oct 16 10:29:56 2013
@@ -57,48 +57,77 @@ import org.slf4j.LoggerFactory;
 import ch.qos.logback.classic.Level;
 import ch.qos.logback.classic.Logger;
 
+/**
+ * Base class for all integration tests.
+ */
 public abstract class TestBase implements LogService, FrameworkListener {
+    // Default OSGI log service level.
     private final static int LOG_LEVEL = LogService.LOG_WARNING;
+    
+    // Flag used to check if some errors have been logged during the execution of a given test.
     private volatile boolean m_errorsLogged;
 
-    // the name of the system property providing the bundle file to be installed
-    // and tested
-    protected static final String BUNDLE_JAR_SYS_PROP = "project.bundle.file";
+    // The name of the system property providing the bundle file to be installed and tested.
+    protected static final String TESTBUNDLE_FILE = "project.bundle.file";
+    
+    // The default bundle jar file name
+    protected static final String TESTBUNDLE_FILE_DEF = "target/org.apache.felix.dependencymanager.test-3.0.1-SNAPSHOT.jar";
+
+    // The name of the system property providing the test bundle symbolic name.
+    protected static final String TESTBUNDLE_SN = "project.bundle.symbolicName";
 
-    // the default bundle jar file name
-    protected static final String BUNDLE_JAR_DEFAULT = "target/org.apache.felix.dependencymanager.test-3.0.1-SNAPSHOT.jar";
+    // The default symbolic name for our test bundle
+    protected static final String TESTBUNDLE_SN_DEF = "org.apache.felix.dependencymanager.test";
 
-    // the JVM option to set to enable remote debugging
-    protected static final String DEBUG_VM_OPTION = "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=30303";
+    // The JVM option to set to enable remote debugging
+    protected static final String DEBUG_VM_OPTION = "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005";
 
-    // the actual JVM option set, extensions may implement a static
+    // The package exported by our test bundle, which we import from all integration tests.
+    private static final String TESTBUNDLE_PACKAGE = "org.apache.felix.dm.test.components";
+
+    // The actual JVM option set, extensions may implement a static
     // initializer overwriting this value to have the configuration()
     // method include it when starting the OSGi framework JVM
     protected static String paxRunnerVmOption = null;
 
+    // Bundle context injected by pax-exam for each integration test.
     @Inject
     protected BundleContext context;
 
+    // We implement OSGI log service.
     protected ServiceRegistration logService;
     
-    // Flag used to check if our test components (src/main/java/**/*) bundle must be started
-    private final boolean m_startTestComponentsBundle;
+    // Flag used to check if our test bundle (src/main/java/**/*) bundle must be started
+    // (true for annotation based integration tests)
+    private final boolean m_startTestBundle; 
     
+    /**
+     * Default constructor. By default, we don't start the bundle generated by this project.
+     * (the test bundle (src/main/java/...) contains some annotated components only meant to be
+     * used by annotation based tests.
+     */
     public TestBase() {
         this(false);
     }
     
-    public TestBase(boolean startTestComponentsBundle) {
-        m_startTestComponentsBundle = startTestComponentsBundle;
+    /**
+     * Creates a new TestBase instance.
+     * @param startTestBundle true if the test bundle must be started, false if not.
+     */
+    public TestBase(boolean startTestBundle) {
+        m_startTestBundle = startTestBundle;
     }
  
+    /**
+     * Pax Exam Configuration.
+     */
     @Configuration
     public Option[] configuration() {
-        final String bundleFileName = System.getProperty(BUNDLE_JAR_SYS_PROP, BUNDLE_JAR_DEFAULT);
-        final File bundleFile = new File(bundleFileName);
-        if (!bundleFile.canRead()) {
-            throw new IllegalArgumentException("Cannot read from bundle file " + bundleFileName
-                    + " specified in the " + BUNDLE_JAR_SYS_PROP + " system property");
+        final String testBundle = System.getProperty(TESTBUNDLE_FILE, TESTBUNDLE_FILE_DEF);
+        final File testBundleFile = new File(testBundle);
+        if (!testBundleFile.canRead()) {
+            throw new IllegalArgumentException("Cannot read from test bundle file " + testBundle
+                    + " specified in the " + TESTBUNDLE_FILE + " system property");
         }
         
         // Reduce pax exam log level.
@@ -109,7 +138,8 @@ public abstract class TestBase implement
                 workingDirectory("target/paxexam/"),
                 systemProperty("dm.runtime.log").value("false"),
                 systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("WARN"),
-                systemTimeout(5000),
+                //vmOption("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"),
+                systemTimeout(15000),                
                 cleanCaches(true),
                 junitBundles(),
                 mavenBundle("org.apache.felix", "org.apache.felix.metatype", "1.0.8"),
@@ -120,23 +150,35 @@ public abstract class TestBase implement
                 mavenBundle("org.apache.felix", "org.apache.felix.dependencymanager","3.1.1-SNAPSHOT"),
                 mavenBundle("org.apache.felix", "org.apache.felix.dependencymanager.shell", "3.0.2-SNAPSHOT"),
                 mavenBundle("org.apache.felix", "org.apache.felix.dependencymanager.runtime", "3.1.1-SNAPSHOT"),
-                bundle(bundleFile.toURI().toString()).start(m_startTestComponentsBundle));
+                bundle(testBundleFile.toURI().toString()).start(m_startTestBundle));
         final Option option = (paxRunnerVmOption != null) ? vmOption(paxRunnerVmOption) : null;
         return OptionUtils.combine(base, option);
     }
 
+    /**
+     * pax exam hook used to customize the OSGI manifest of the bundle generated for each integration test.
+     */
     @ProbeBuilder
     public TestProbeBuilder buildProbe(TestProbeBuilder builder) {
-        return builder.setHeader(Constants.IMPORT_PACKAGE,
-                "org.apache.felix.dm.test.components");
+        // We import the package exported by our test bundle (src/main/java/*), which contains:
+        //
+        // - the Ensure helper (used by ALL tests)
+        // - some Annotated components (only used by annotation based tests).
+        return builder.setHeader(Constants.IMPORT_PACKAGE, TESTBUNDLE_PACKAGE);
     }
 
+    /**
+     * Test initialization.
+     */
     @Before
     public void setUp() {
         logService = context.registerService(LogService.class.getName(), this, null);
         context.addFrameworkListener(this);
     }
 
+    /**
+     * Test shutdown
+     */
     @After
     public void tearDown() throws BundleException {
        logService.unregister();
@@ -144,7 +186,7 @@ public abstract class TestBase implement
     }
 
     /**
-     * Create and provide an Ensure object with a name service property.
+     * Creates and provides an Ensure object with a name service property into the OSGi service registry.
      */
     protected ServiceRegistration register(Ensure e, String name) {
         Hashtable<String, String> props = new Hashtable<String, String>();
@@ -179,12 +221,12 @@ public abstract class TestBase implement
     }
 
     /**
-     * Stops our test components bundle.
+     * Stops our test bundle.
      */
-    protected void stopTestComponentsBundle() {
-        stopBundle("org.apache.felix.dependencymanager.test.components");
+    protected void stopTestBundle() { 
+        stopBundle(System.getProperty(TESTBUNDLE_SN, TESTBUNDLE_SN_DEF));
     }
-
+    
     /**
      * Suspend the current thread for a while.
      * 
@@ -268,7 +310,7 @@ public abstract class TestBase implement
     }
 
     private void checkError(int level, Throwable exception) {
-        if (level >= LOG_ERROR) {
+        if (level <= LOG_ERROR) {
             m_errorsLogged = true;
         }
         if (exception != null) {