This directory contains regression tests which can be used to test OSGi frameworks. Almost all of the tests originates from the Gatespace Telematics test suite. These test are now donated as BSD-licensed open source, via the Knopflerfish project.
The tests can be compiled stand-alone from the main KF distrib, by just checking out the regression_tests/ dir and compile using ant:
> svn co \ https://www.knopflerfish.org/svn/knopflerfish.org/trunk/osgi/bundles_test/regression_tests > cd regression_tests > ant -Dosgi.jar=<path to osgi lib>...and you'll get a new dir jars/, full of test bundles.
The KF nightly build runs these test, and saves the results at
http://www.knopflerfish.org/snapshots/<RELEASE>/junit_grunt/index.xml
A precompiled zip file of the necessary test bundles can be found at
http://www.knopflerfish.org/snapshots/<RELEASE>/knopflerfish_osgi_tests_<RELEASE>-trunk.zip">
The tests can also be accessed/browsed using subversion, from
https://www.knopflerfish.org/svn/knopflerfish.org/trunk/osgi/bundles_test/regression_tests/
| Bundle | Test id | Passes on |
|---|---|---|
| framework_test-1.0.0 | FrameworkTestSuite | KF |
| filter_test-1.0.0.jar | FilterTestSuite | KF |
| servicetracker_test-1.0.0.jar | ServiceTrackerTestSuite | KF |
| constants_test-1.0.0.jar | ConstantsTestSuite | KF, Oscar |
| permissionadmin_test-1.0.0.jar | PermissionAdminTestSuite | KF |
| registeryperformance_test-1.0.0.jar | PerformanceRegistryTestSuite | KF |
| http_test-1.0.0.jar | HttpTestSuite | Only half-complete |
| restart_test-1.0.0.jar | RestartSetupTestSuite + RestartTestSuite | KF |
and a lot of small test bundles bundle[A-Z]_test which are used as embedded bundles.
Most of the tests have been ported from a log-based test system, to a JUnit-based system (see JUnit testing on OSGi), and the test in themselves may thus contain porting errors.
Reviews are encouraged! Please report any possible test errors, new tests, suggestions, or new platforms that the tests have been run on, to info@knopflerfish.org
If you have a checked out copy of the subversion repository
knopflerfish.org then you can run all these tests from the
osgi-subdirectory by typing:
ant run-osgi-test-target-secureThis will build all needed bundles and then execute the test suites.
The rest of this page describes how to run the tests by hand.
The test cases above can be run using the junit bundle. It can also be run without the http server, using the junit_runner bundle.
To run a stand-alone tests you should only need to install
junit_all-2.0.0.jarthen the one or more of the actual test cases
framework_test-1.0.0.jar (test id: FrameworkTestSuite) filter_test-1.0.0.jar (test id: FilterTestSuite) servicetracker_test-1.0.0.jar (test id: ServiceTrackerTestSuite) constants_test-1.0.0.jar (test id: ConstantsTestSuite)the last started bundle should be
junit_runner_all-1.0.0.jarwhich reads system properties
org.knopflerfish.junit_runner.tests=[space separated test ids or filter] org.knopflerfish.junit_runner.quit=true
When the framework is started, the junit_runner bundle will run all installed test and write the XML results to a directory (including XSLT styles for HTML presentation). The default output directory is junit_grunt1
An KF .xargs file doing exactly this can be found at init-tests.xargs. This is the same file used for the nightly test runs.
The restart_test bundle is intended to test framework behavior after a restart. This requires the system triggering the test to start the framework twice, first in a completely clean state, then in a restarted state.
The first run will install a set of bundles (at different start levels) and then quit.
The next run should start the framework in a restarted mode. The restart bundle will notice this by using the bundle file storage, and compare the state between the two runs.
These .xargs startup files can be used as example for running the
restart tests: