DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Using the OSGi
...
Complaince Tests
The OSGi Alliance now provides access to Apache committers access to its TCK binariesCompliance Tests (CT). This page describes how to use run Felix subprojects against the TCK.
OSGi TCK Overview
get access to the CTs and how to use them with Felix subprojects.
Gaining Access to OSGi CTs
The general process is to send a request to the jcp-open@apache.org mailing requesting access. Since redistributing the OSGi CTs is not allowed, you will need to submit an NDA to be granted access to the SVN repo containing the binaries.
OSGi CT Overview
The CT The TCK is delivered as two JAR files, one for the core TCK CT and one for the compendium TCKCT. Each JAR file is comprised composed of several other JAR files, which are the actual compliance tests. Typically, there is one JAR per specification, except for the OSGi framework. The TCK CT uses BND as its testing harness, which in turn uses the OSGi R4.2 framework launching and embedding API to configure, launch, and install test bundles. Each test JAR file has an associated BND file which supplies the configuration BND needs to run the associated tests.
Modifying the BND files
Modifying the BND files is fairly straightforward, if not tedious. A typical BND file looks like this:
...
The following two examples show how to edit these files for the Felix framework and other Felix bundle subprojects.
Testing the Felix framework
The Felix framework is tested against the core TCKCT. The first thing to do is extract the core TCK CT JAR file, which includes test suites for:
...
| No Format |
|---|
-runpath = \
/path/to/felix/framework/org.apache.felix.framework-2.0.2.jar;version=file, \
jar/com.springsource.junit-3.8.2.jar;version=file;export="junit.framework;version=3.8"
|
It Typically, it is not necessary to change anything else in the BND files and it is normal that the -runbundles setting is empty, since there are no additional bundles associated with testing the framework. The exception to this is for the framework test suites for security. To test with security enabled, you will need to add the framework security provider in -runbundles like this:
| No Format |
|---|
-runbundles = \
/path/to/felix/framework.security/org.apache.felix.framework.security-1.0.0.jar.jar;version=file
|
After editing the BND files, run the tests using:
...
Where <bnd-file> specifies one or more BND files for associated with the associates desired test suites to run.
| Note | ||
|---|---|---|
| ||
Since the Felix framework does not fully implement the security-related portions of the OSGi specification, it is normal for it to fail the security-related test suitesTests for native code loading will fail on Java 6, so do not use this JDK for testing the framework. |
Reports for the tests suites are generated in the reports/ subdirectory and are named after the appropriate test suite.
Testing a Felix bundle
The core TCK CT tests the framework implementation and its related services. The compendium TCK CT tests the various non-framework-related specifications, which are implemented as bundles. For the most part, testing a bundle is similar to testing the framework.
Extract the compendium TCK CT JAR file to access the individual test suites. Since most compendium service specification test suites require security, it is necessary to use another a framework implementation to run these tests, such as Equinox. Since the BND files already mention Equinox on their -runpath setting, it is not necessary to edit them to use it, although it is necessary to supply an Equinox JAR file and drop it into the jar/ subdirectory.that supports security. For the Felix framework, you will have to add the security provider to the -runbundles to enable security.
To test a bundle, the -runbundles setting must be modified to refer to the bundle or bundles being tested. For example, to test Felix' Event Admin implementationbundle, edit the -runbundles setting in org.osgi.test.cases.event.bnd to look something like this:
| No Format |
|---|
-runbundles = \
/path/to/felix/eventadmin/org.apache.felix.eventadmin-1.0.0.jar;version=file,\
/path/to/felix/framework.security/org.apache.felix.framework.security-1.0.0.jar.jar;version=file
|
After editing the BND files to refer to the appropriate bundlebundles, run the tests using:
| No Format |
|---|
source runtests |
...
Where <bnd-file> specifies one or more BND files for associated with the associates desired test suites to run. Reports for the tests suites are generated in the reports/ subdirectory and are named after the appropriate test suite.
Feedback
For any questions or feedback, subscribe to the Felix developers mailing list by sending a message to dev-subscribe@felix.apache.org; after subscribing, email questions or feedback to dev@felix.apache.org.