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) {