Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 367307 - Different behavior running UI-Test from Tycho vs Eclipse
Summary: Different behavior running UI-Test from Tycho vs Eclipse
Status: CLOSED INVALID
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Tycho (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-21 06:51 EST by Nobody - feel free to take it CLA
Modified: 2021-04-28 16:54 EDT (History)
3 users (show)

See Also:


Attachments
How the UI should look like (92.83 KB, image/png)
2011-12-21 07:00 EST, Nobody - feel free to take it CLA
no flags Details
How the UI looks running with Tycho (69.70 KB, image/png)
2011-12-21 07:00 EST, Nobody - feel free to take it CLA
no flags Details
Log of tests with Tycho 0.14.0-SNAPSHOT (44.70 KB, text/plain)
2011-12-23 04:09 EST, Nobody - feel free to take it CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nobody - feel free to take it CLA 2011-12-21 06:51:11 EST
Build Identifier: 20100917-0705

We've developed an Eclipse RCP application were we use tycho to run our CI tests and also some UI tests.

I recently raised the tycho version from 0.12.0 to 0.13.0. 

Now I've the problem that the UI tests fail if I run the tests with tycho but the same tests are successful when I start them from Eclipse (as Plugin-Test).

The strange thing is that the UI looks different depending if I use tycho or Eclipse. 

I'll attach some screenshots to show the difference.

Reproducible: Always

Steps to Reproduce:
I can't provide an example yet, but I'll work on it.
Comment 1 Nobody - feel free to take it CLA 2011-12-21 07:00:31 EST
Created attachment 208672 [details]
How the UI should look like
Comment 2 Nobody - feel free to take it CLA 2011-12-21 07:00:58 EST
Created attachment 208673 [details]
How the UI looks running with Tycho
Comment 3 Jan Sievers CLA 2011-12-21 07:04:34 EST
See [1]

"The OSGi runtimes for tests no longer contains the full target platform but only the (transitive) dependencies of the test bundle. This may lead to test failures due to missing implicit dependencies. Recommendation: Make the dependencies explicit in the component feature and add it to the test runtime."

[1] http://wiki.eclipse.org/Tycho/Release_Notes/0.13
Comment 4 Nobody - feel free to take it CLA 2011-12-21 08:07:35 EST
I've the same problem going back to 0.12.0.
Comment 5 Nobody - feel free to take it CLA 2011-12-22 08:30:02 EST
I did some debugging and it seems that a ClassDefNotFoundError is raised during the UI test:

java.lang.NoClassDefFoundError: Could not initialize class com.prostep.openpdm.who.controller.carpool.ConfigurationLabelProvider

This class is provided in one of our plugins. 

Here's how it looks like:
com.prostep.openpdm.who.ui.test is a fragment with
com.prostep.openpdm.who being it's host plugin.
com.prostep.openpdm.who has a dependency to 
com.prostep.openpdm.who.controller which contains the class.


So how can I add the com.prostep.openpdm.who.controller to the test OSGI environment and why is it not already contained (since it is a direct dependency of the host)?

Here's the stacktrace:
java.lang.NoClassDefFoundError: Could not initialize class com.prostep.openpdm.who.controller.carpool.ConfigurationLabelProvider
	at com.prostep.openpdm.optimizer.gui.HarnessExplorer.createAdditionalTreeContent(HarnessExplorer.java:145)
	at com.prostep.openpdm.optimizer.gui.CarpoolExplorer.createConfigTree(CarpoolExplorer.java:118)
	at com.prostep.openpdm.optimizer.gui.CarpoolExplorer.refresh(CarpoolExplorer.java:450)
	at com.prostep.openpdm.optimizer.gui.multipageeditor.MultiPageEditor.pageChange(MultiPageEditor.java:803)
	at org.eclipse.ui.part.MultiPageEditorPart.setActivePage(MultiPageEditorPart.java:1067)
	at org.eclipse.ui.forms.editor.FormEditor.setActivePage(FormEditor.java:603)
	at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:352)
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
	at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313)
	at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
	at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)
	at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)
	at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1254)
	at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1207)
	at org.eclipse.ui.internal.PartStack.presentationSelectionChanged(PartStack.java:841)
	at org.eclipse.ui.internal.PartStack.access$1(PartStack.java:827)
	at org.eclipse.ui.internal.PartStack$1.selectPart(PartStack.java:137)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:133)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:269)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:278)
	at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder.access$1(DefaultTabFolder.java:1)
	at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder$2.handleEvent(DefaultTabFolder.java:88)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
	at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743)
	at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429)
	at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at com.prostep.openpdm.optimizer.Application.start(Application.java:25)
	at org.eclipse.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:31)
	at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:114)
	at org.eclipse.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:37)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
Comment 6 Igor Fedorenko CLA 2011-12-22 15:24:53 EST
Can you check if tycho 0.14.0-SNAPSHOT behaves differently? It is available from 

<pluginRepositories>
  <pluginRepository>
    <id>tycho-snapshots</id>
    <url>https://oss.sonatype.org/content/groups/public/</url>
  </pluginRepository>
</pluginRepositories> 


If the problem still exists in 0.14.0-SNAPSHOT, please provide a complete standalone example project that demonstrates the problem and we'll have a look.
Comment 7 Nobody - feel free to take it CLA 2011-12-23 03:54:19 EST
I'll try the 0.14.0-SNAPSHOT and give you feedback
Comment 8 Nobody - feel free to take it CLA 2011-12-23 04:09:23 EST
Created attachment 208768 [details]
Log of tests with Tycho 0.14.0-SNAPSHOT

Same result with Tycho 0.14.0-SNAPSHOT.

I've attached my .log file.
Comment 9 Igor Fedorenko CLA 2011-12-23 07:08:55 EST
(In reply to comment #8)
> Created attachment 208768 [details]
> Log of tests with Tycho 0.14.0-SNAPSHOT
> 
> Same result with Tycho 0.14.0-SNAPSHOT.
> 
> I've attached my .log file.

The log does not really help, we need complete standalone example project that demonstrates the problem.
Comment 10 Nobody - feel free to take it CLA 2011-12-23 07:12:24 EST
I'll try to set up a standalone example.
Comment 11 Nobody - feel free to take it CLA 2012-01-10 03:45:50 EST
My bad.. the error was an exception in a static initialization block of my class.

Sorry for the inconvenience.