Export a project using the file /org.eclipse.equinox.examples.app.selector/AppSelector.product

Launch the product with the -console option (e.g. eclipse -console)

Attempt to launch all the applications using the application selector. Verify that the status of each application changes to running

Stop all the applications by closing each individual application window (except for the application selector window). Verify that the status for each application changes to inactive

Run the apps console command to get a list of available applications

Start each launchable application using the startApp console command. Note that you can use a substring of the application id when launching (e.g. startApp paint). Verify that the status for each application started is reflected in the application selector. You can also verify the status by running the apps command.

Stop each app using the stopApp console command. Verify that each application window is closed and the proper status is reflected in the application selector.

Attempt to start the paint application by running the console command startApp paint. Verify that an exception is thrown indicating the application is locked. Also run the console command apps to verify that paint application is locked.

Close and restart the application selector. Verify the paint application is persistently locked.

Attempt to start the paint application by running the console command startApp paint. Verify that the application is launched. Close and restart the application selector. Verify the paint application is not locked.

Schedule a reccuring launch of the paint application by running the console command schedApp paint (minute=*) true. This schedules the application to be launched once every minute. Run the apps command to confirm that the paint application is scheduled. Verify that the paint application is launched within 1 minute.

Close the paint application. Wait for 1 minute and and verify that the paint application is launched again.

Close and restart the application selector. Verify that the paint application is still scheduled. Wait for 1 minute and verify that the paint application is launched.

Unschedule the paint application by running the console command unschedApp paint. Verify the paint application is no longer scheduled. Close the paint application and wait for 2 minutes and verify the paint application is not launched.

Close and restart the application selector. Verify that the paint application is no longer scheduled.

Extension Registry

The main test of the extension registry is that Eclipse starts with no error messages twice in a row: start it in a clean install (no caches), shutdown, and start it again (uses caches). If you can open the Error log and see no error messages in the log after this, the extension registry works.

All the rest of the testing is really done by automated tests and by other teams using the registry. However, if you have some spare time, here are some more tests that can be run.

Part I. Startup / Shutdown / Caches

Download Eclipse SDK and unzip it in a new directory. If using a Sun VM, create a shortcut increasing memory size: -vmargs -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m

Start Eclipse (it will parse xml files and create caches)

Create a new workspace

Check that no errors are in the Error log

Close Eclipse

Start Eclipse again (it uses cached information this time)

Check that no errors are in the Error log

Close Eclipse

Part II. Automated tests debug

Start Eclipse

Check that no errors are in the Error log

Connect to the CVS repository :pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse and get the following plug-ins from it:

org.eclipse.core.tests.harness

org.eclipse.core.tests.runtime

org.eclipse.test.performance

No errors should be generated as plug-ins compile

Select "All Runtime Tests" launch configuration and Run it

All tests should pass

Select "All Runtime Tests" configuration and Debug it

All tests should pass; observe console to see if any error messages appear. The following console output is expected:

If running on 1.4 VM some JDT bundles will be unresolved (they need Java 1.5 or Java 1.6)

If running on 1.5 VM some JDT bundles will be unresolved (they need Java 1.6)

"Reading registry cache"

"Using registry cache..."

"Cumulative parse time so far"

Part III. Reaction to bundle events

Use the “new plug-in” wizard to create a plug-in project that contributes a menu item (Use "Hello World" template)

Create a new launch configuration under "Eclipse Application", set program arguments to "-clean -console"

Debug this launch configuration. Observe if all usual menus are in the usual places. Check that "Sample Menu" menu from the new plug-in is present

In the console of the host Eclipse type "ss" and note the ID of the plug-in you created in the step 1.

In the console of the host Eclipse type "uninstall <id_from_step_4>"

The "Sample menu" item should be gone

Note: Eclipse 3.3M6 currently has an associated bug open 178284. Same in the Eclipse 3.3M7 candidate.

Part IV. Standalone registry run

Several "simple" (non-OSGi) registry tests are run within regular Eclipse tests. The purpose of this test is to see if the extension registry can be used in an environment that really doesn’t have OSGi.

Create a workspace with the registry bundle, test bundle, and the supplement bundle:

Import org.eclipse.equinox.registry and org.eclipse.equinox.common plug-ins from the target (Import -> Plug-in development -> Plug-ins and Fragments)

Check out org.eclipse.equinox.test.standalone project from the same CVS under equinox-incubator/tests

Run the launch configuration "All Equinox Standalone Tests"

Test(s) should pass

Launcher & Splash Screen

command-line args

specifying a splash (both in a jar and not)

specifying a library

failure cases

mutliple versions of the launcher JAR (exe search algorithm)

headless mode with the exe (no dialogs)

plug-ins not co-located with exe

splash screen demos from EclipseCon 2007

OSGi

Running the JAR

configuring the JAR

Running the OSGi TCK

The project equinox-incubator/org.eclipse.equinox.tcksetup in the equinox incubator provides the necessary scripts and configuration settings to run the osgi TCK. Checkout the project and follow the instructions in the readme file in the root of the project.

Server-Side

Runtime

File-system

Jobs

The Jobs JUnit tests can be run both as plug-in unit tests and as regular Java JUnit tests. We need to work on the test framework to be able to integrate running regular JUnit tests and have their results printed out with the rest of the test results.