Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
E4/Compatibility/Testing
This page describes how to run the 3.x API tests with a workbench that's backed by e4's compatibility layer.
Setup
- Download a recent e4 SDK here.
- Checkout the
org.eclipse.e4.ui.releng
module from the/cvsroot/eclipse
'se4/releng
directory. - Right-click on the
e4.ui.compatibility.psf
file and select 'Import project set...'. You will have compiler errors. - Repeat the procedure for
e4.ui.psf
ande4.ui.css.psf
.
Running the tests
- Select a test from the
org.eclipse.ui.tests
bundle, such asorg.eclipse.ui.tests.api.IWorkbenchPageTest
for example. - If there are compiler errors indicating incorrect imports, try using 'Organize Imports' to get rid of them or to have them point to the e4 variant of the internal.
- Right-click on the file > Run As > JUnit Plug-in Test.
- This will fail. Open the launch configuration dialog.
- Select the launch configuration that was just generated and go to the 'Main' tab.
- Change the target product to
org.eclipse.e4.ide.application.product
. - Try running the test again. It should work now.
Known issues
- If you get a
NullPointerException
inOSGiContextStrategy
like the stack trace below, you are seeingbug 299070. To workaround the problem, you can checkoutorg.eclipse.e4.core.services
from CVS and then apply the patch that's there until a proper fix has been checked in.
java.lang.NullPointerException at org.eclipse.e4.internal.core.services.osgi.OSGiContextStrategy.addingService(OSGiContextStrategy.java:71) at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:896) at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:261) at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:184) at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:339) at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:273) at org.eclipse.e4.internal.core.services.osgi.OSGiContextStrategy.lookup(OSGiContextStrategy.java:123) at org.eclipse.e4.core.services.internal.context.EclipseContext.internalGet(EclipseContext.java:347) at org.eclipse.e4.core.services.internal.context.EclipseContext.get(EclipseContext.java:316) at org.eclipse.ui.PlatformUI.getTestableObject(PlatformUI.java:171) at org.eclipse.pde.internal.junit.runtime.UITestApplication.start(UITestApplication.java:43)