Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 402066

Summary: [CBI] Missing properties is causing p2 reconciler test failures
Product: [Eclipse Project] Platform Reporter: Pascal Rapicault <pascal.rapicault>
Component: RelengAssignee: David Williams <david_williams>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: P3 CC: daniel_megert, david_williams
Version: 4.3   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Bug Depends on:    
Bug Blocks: 372792, 393922    

Description Pascal Rapicault CLA 2013-02-28 16:56:28 EST
The move to CBI has caused the dropins and shared install tests to fail:

http://download.eclipse.org/eclipse/downloads/drops4/I20130226-2200/testresults/html/org.eclipse.equinox.p2.tests_win32.win32.x86_7.0.html

This is most likely caused by the absence of the property -Dorg.eclipse.equinox.p2.reconciler.tests.platform.archive=c:\dev\eclipse.zip
Comment 1 Pascal Rapicault CLA 2013-02-28 17:00:08 EST
To be clear, the name of the property is org.eclipse.equinox.p2.reconciler.tests.platform.archive and it should point to a download of the platform or the SDK that has just been built.

I have ideas on how to work around that but this is not going to happen soon (https://bugs.eclipse.org/bugs/show_bug.cgi?id=402067).
Comment 2 David Williams CLA 2013-02-28 17:49:41 EST
Thanks very much, Pascal. Some of the "properties files" did change location/processing in the new set up. This will help me know what to look for.
Comment 3 David Williams CLA 2013-02-28 19:15:08 EST
Any memory of how you get that value? 

I can't find any evidence we ever passed it directly with -D, but we do provide it in a property file named 

equinoxp2tests.properties

Which appears to have the right values on the test server. See below. 

any chance your test.xml file "reads" that file? And, now its in a different place? (as far as I can tell, it is in the "same place", but, there are several "copied" versions on the tests server, so not sure which is the critical one for you. 

I've looked at the properties defined at the time of your tests, at 

http://download.eclipse.org/eclipse/downloads/drops4/I20130227-2000/testresults/html/org.eclipse.equinox.p2.tests_linux.gtk.x86_6.0.html

and don't see that property defined ... but, also looks like there is nothing undefined, or defined incorrectly, as far as I can tell. See anything in there that looks wrong? 


= = = = = = = = =

#Fri Oct 22 11:38:18 EDT 2010
org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux-x86_64=/opt/users/hudsonbuild/workspace/ep4-unit-lin64/workarea/I20130227-2000/eclipse-testing/eclipse-platform-3.7.2-linux-gtk-x86_64.tar.gz
org.eclipse.equinox.p2.tests.current.build.repo=http://download.eclipse.org/eclipse/updates/4.3-I-builds/I20130227-2000
org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32=/opt/users/hudsonbuild/workspace/ep4-unit-lin64/workarea/I20130227-2000/eclipse-testing\\eclipse-platform-3.7.2-win32.zip
org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx=/opt/users/hudsonbuild/workspace/ep4-unit-lin64/workarea/I20130227-2000/eclipse-testing/eclipse-platform-3.7.2-macosx-cocoa.tar.gz
org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=/opt/users/hudsonbuild/workspace/ep4-unit-lin64/workarea/I20130227-2000/eclipse-testing/eclipse-platform-I20130227-2000-linux-gtk-x86_64.tar.gz
org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=/opt/users/hudsonbuild/workspace/ep4-unit-lin64/workarea/I20130227-2000/eclipse-testing\\eclipse-platform-I20130227-2000-win32.zip
org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=/opt/users/hudsonbuild/workspace/ep4-unit-lin64/workarea/I20130227-2000/eclipse-testing/eclipse-platform-I20130227-2000-macosx-cocoa.tar.gz
org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900
Comment 4 David Williams CLA 2013-02-28 19:27:17 EST
Search and ye shall find ... I see you find that file in 
AbstractReconcilerTest.java
= = = = = 
if (installLocation != null) {
	// parent will be "eclipse" and the parent's parent will be "eclipse-testing"
	File parent = installLocation.getParentFile();
	if (parent != null) {
		parent = parent.getParentFile();
		if (parent != null) {
			File propertiesFile = new File(parent, "equinoxp2tests.properties");
			if (!propertiesFile.exists())
				return;
= = = = 
Looking at your tests properties URL, I see 

eclipse.home.location=file:/opt/users/hudsonbuild/workspace/ep4-unit-lin64/workarea/I20130227-2000/eclipse-testing/test-eclipse/eclipse/

And, this equinoxp2tests.properties file, with the values I gave above, is in 
.../workarea/I20130227-2000/eclipse-testing/

As far as I know, it's been in there before the "CBI build change" ... but if I'm reading your code right you need to go up one more level? 

Let me know if/what I am "mis-reading" ... otherwise, if you think it's finding it, you might want to add some "prinln's" to log your attempts and finding/or not.
Comment 5 Pascal Rapicault CLA 2013-02-28 19:36:08 EST
There are things to learn every day. I did not even know about the equinoxp2tests.properties file :)

The code that reads the property file dates from a couple years ago and it looks like it expects the file as a sibling of the eclipse folder. In CBI, do you know where this file is located?
Is the build job available on the Hudson instance?

Finally, for reference, could you please point me at the last PDE Build?
Comment 6 David Williams CLA 2013-02-28 23:39:00 EST
(In reply to comment #5)
> There are things to learn every day. I did not even know about the
> equinoxp2tests.properties file :)
> 
> The code that reads the property file dates from a couple years ago and it
> looks like it expects the file as a sibling of the eclipse folder. In CBI,
> do you know where this file is located?
> Is the build job available on the Hudson instance?
> 
> Finally, for reference, could you please point me at the last PDE Build?

For reference, the last PDE build is conveniently documented in our transition plan, 

http://wiki.eclipse.org/Platform-releng/Releng_Plan_for_CBI_adoption#The_last_PDE_based_build

(bet you didn't know there would be a test if people read it or not :) 

Or, more directly, 

http://download.eclipse.org/eclipse/downloads/drops4/I20130219-1600/

As I mentioned in previous comment, 
= = = = 
eclipse.home.location=file:/opt/users/hudsonbuild/workspace/ep4-unit-lin64/workarea/I20130227-2000/eclipse-testing/test-eclipse/eclipse/

And, this equinoxp2tests.properties file, with the values I gave above, is in 
.../workarea/I20130227-2000/eclipse-testing/
= = = = 
You can explore the Hudson "workspace" if you'd like, but, you need to do it at a time after a "successful" test run (its removed when one starts, and if it fails, as tonight's did, it is left in a "partial" state). The URL for our Linux Kepler tests workspace is 

https://hudson.eclipse.org/hudson/view/Eclipse%20and%20Equinox/job/ep4-unit-lin64/

(and, then click on "workspace", and then clicking on "workarea" starts to get you to the good stuff .... follow directories mentioned in above URLS. Like I said, there are several copies of the file out there (due to history, and my own sloppy coding added to that).
Comment 7 David Williams CLA 2013-03-18 15:27:22 EDT
Was this ever fixed? Or test just commented out? 

If there is some way to fix without using the equinoxp2tests.properties file that would be great. 

For example, I was going to suggest to "walk up" the directory tree until you fine the equinoxp2tests.properties file, but, if you do that, you will have also found where the files are, that the properties refer to. So ... with that simple assumption, that the files have been copied somewhere "above" you in the tree, you'd not need with equinoxp2tests.properties file any longer. 

The one exception to the above appears to be a property in equinoxp2tests.properties called 
org.eclipse.equinox.p2.tests.last.release.build.repo
but, seems that "last release" changes so seldom, you could have it as your own property in your own test.xml file. Its currently out of date, anyway, the value from a recent property file has 

org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900
Comment 8 Pascal Rapicault CLA 2013-03-19 11:48:07 EDT
Some magic may have happened because some of the reconciler tests are now running fine. Going forward my plan is to completely get rid of that and use tycho to build a product that represents what's needed to test (see bug #402067).

Closing.