Buckminster: running JUnit Plugin tests headless

1.1k views Asked by At

I have a simple Hudons/Buckminster setup where Hudson checks out four Java plugin projects from SVN, materializes(?) the org.eclipse.platform from the Helios download-site, runs a small ant-job in one of the projects for JFlex etc. (Buckminster doesn't "see" the configure external ANT builder?, and then Buckminster builds the workspace.

The Java plugin projects also contain feature.xml files with the same ID as the plugin (we've been using an ant-based build-process so far).

I can successfully perform ...#site.p2 on the first two, but the third one fails for some reason (but this is not the question here).

Now, one of the projects has JUnit tests that I can run from Eclipse Indigo using a headless JUnit Plugin Launch configuration. Note: for some reason, (because we have the features not in separate feature projects?), dependency generation checking on the launch config is broken, and I have manually configured the minimal set of plugins required.

Now, I run this launch configuration in Buckminster:

junit -l com.pon.ent/junit.launch

and get:

ERROR: Plugin validation errors were detected: {com.pon.ent_0.0.0.qualifier=[Lorg.eclipse.osgi.service.resolver.ResolverError;@c986d2, org.eclipse.ui.views_3.5.1.M20110202-0800=[Ljava.lang.Object;@b27cca, org.eclipse.ltk.core.refactoring_3.5.100.v20100526-0800=[Ljava.lang.Object;@1ec391, org.eclipse.ui.navigator.resources_3.4.201.M20100707-0800=[Ljava.lang.Object;@1b9a026, org.eclipse.debug.ui_3.6.1.v20100901_r361=[Ljava.lang.Object;@1c126da, org.eclipse.ui.ide_3.6.1.M20100825-0800=[Ljava.lang.Object;@1dde560, org.eclipse.team.ui_3.5.101.R36x_v20100825-0800=[Ljava.lang.Object;@fe10f1, org.eclipse.ui.ide_3.6.2.M20101201-0800=[Ljava.lang.Object;@a68c8, org.eclipse.jdt.ui_3.6.1.r361_v20100825-0800=[Ljava.lang.Object;@16535fa, org.eclipse.debug.ui_3.6.3.v20101201_r362=[Ljava.lang.Object;@1baec4c, org.eclipse.ui.navigator.resources_3.4.202.M20101124-0800=[Ljava.lang.Object;@ef965e, org.eclipse.jdt.debug.ui_3.5.0.v20100602-0830=[Ljava.lang.Object;@17916a0, org.eclipse.jdt.debug.ui_3.5.2.v20100928a_r362=[Ljava.lang.Object;@bc7bc0, org.eclipse.equinox.p2.repository_2.0.2.R36x_v20110111-1500=[Lorg.eclipse.osgi.service.resolver.ResolverError;@607cad, org.eclipse.compare_3.5.100.I20100526-0800=[Ljava.lang.Object;@997c85, org.eclipse.ui.views_3.5.0.I20100527-0800=[Ljava.lang.Object;@be0e6e, org.eclipse.ui_3.6.1.M20100826-1330=[Ljava.lang.Object;@1a5688d, org.eclipse.team.ui_3.5.102.R36x_v20110203-1036=[Ljava.lang.Object;@73102f, org.eclipse.jdt.ui_3.6.2.r362_v20110203=[Ljava.lang.Object;@2baa00, org.eclipse.equinox.p2.metadata.repository_1.1.0.v20100513=[Lorg.eclipse.osgi.service.resolver.ResolverError;@a5f472, org.eclipse.ltk.core.refactoring_3.5.101.r362_v20101117-0800=[Ljava.lang.Object;@153a539, org.eclipse.swt_3.6.1.v3655c=[Ljava.lang.Object;@8445f7, org.eclipse.ui_3.6.2.M20110203-1100=[Ljava.lang.Object;@d8573, org.eclipse.ui.workbench_3.6.1.M20100826-1330=[Ljava.lang.Object;@1b4776a, org.eclipse.compare_3.5.101.R36x_v20100929-0800=[Ljava.lang.Object;@10bdf62, org.eclipse.swt_3.6.2.v3659c=[Ljava.lang.Object;@76b51c, org.eclipse.ui.workbench_3.6.2.M20110210-1200=[Ljava.lang.Object;@16c6a89} WARN: Process /usr/jdk/instances/jdk1.6.0/bin/java (Oct 19, 2011 9:02:53 PM) terminated with exit status 1.

Given that things like org.eclipse.ui.views show up as matched, e.g.

org.eclipse.ui.views:osgi.bundle/[3.5.1.M20110202-0800,3.5.1.M20110202-0800]: Found match org.eclipse.ui.views:osgi.bundle$3.5.1.M20110202-0800

I'm a bit at a loss what is actually missing/going wrong. I am not using any products are target platforms, other from what I get from the cquery which gets org.eclipse.platform, and the dependency resolution from my plugins.

Any interpretation is appreciated!

Update:

I've switched things a bit and now use Indigo, include org.eclipse.rcp in Buckminster's target platform, and switched the JUnit launch from plugins to features, and things have condensed down do:

Waiting for jobs to end
junit '-l' 'eu.hatsproject.absplugin/junit.launch' '-o' 'eu.hatsproject.absplugin/junit.xml' '--maxTimeAwaitJunitReport' '20'
WARN:  Process /usr/jdk/instances/jdk1.6.0/bin/java (Oct 21, 2011 6:04:32 PM) terminated with exit status 1.
Doing full workspace refresh
1

There are 1 answers

0
Volker Stolz On BEST ANSWER

Lessons learned:

  • don't mix-and-match: run Buckminster 3.7 imports with Indigo, not Helios update-site (inconclusive, maybe I did something else wrong as well)
  • put --stderr --stdout into the Buckminster junit invocation!

The problem was that the launch configuration contained platform-specific -X-switches, since I exported it from MacOS and was running it on Solaris. I have no idea where those messages end up when you don't use the above switches.