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

Bug 324962

Summary: [tests] Add test to update from 3.6 to 3.7.
Product: [Eclipse Project] Equinox Reporter: Pascal Rapicault <pascal>
Component: p2Assignee: DJ Houghton <dj.houghton>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: irbull, john.arthorne, kim.moir, tjwatson
Version: 3.7   
Target Milestone: 3.7 M5   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:
Attachments:
Description Flags
patch for p2.tests
none
patch none

Description Pascal Rapicault CLA 2010-09-10 09:09:04 EDT
We have an automated test to validate the update path from 3.5 to 3.6, we should change it to test the update from 3.6 to 3.7
Comment 1 John Arthorne CLA 2010-10-13 09:57:59 EDT
The 3.5->3.6 test has been failing lately so I have disabled it in the 3.7 stream. Since it didn't exercise any 3.7 stream code it was not useful as a regression test.
Comment 2 Ian Bull CLA 2010-10-15 01:38:44 EDT
Is there any value is keeping the 3.5 to 3.6, or maybe even 3.5 all the way to 3.7?
Comment 3 John Arthorne CLA 2010-10-15 13:00:41 EDT
(In reply to comment #2)
> Is there any value is keeping the 3.5 to 3.6, or maybe even 3.5 all the way to
> 3.7?

Testing the exact same scenario - upgrade from 3.5.0 to 3.6.0 - every time we perform a 3.7 build does not add any value. The most interesting case is ensuring we can upgrade to our latest 3.7 build, to ensure we don't introduce incompatibilities in our metadata that prevent this from occurring. 

We could actually test 3.5->3.7 but I think the mainline scenario is 3.6->3.7 as we expect this to be the most common operation for our users. Upgrade across multiple releases, such as 3.5->3.7, should work because we haven't introduced any breaking changes, but I don't see that as being a critical requirement to support.
Comment 4 Ian Bull CLA 2010-10-15 13:03:34 EDT
(In reply to comment #3)
> We could actually test 3.5->3.7 but I think the mainline scenario is 3.6->3.7
> as we expect this to be the most common operation for our users. Upgrade across
> multiple releases, such as 3.5->3.7, should work because we haven't introduced
> any breaking changes, but I don't see that as being a critical requirement to
> support.

Yeah, I was wondering if there was any chance we could release something that would be incompatible with 3.5, but somehow work with 3.6?  In this case the 3.5 -> current would be interesting.
Comment 5 John Arthorne CLA 2010-10-15 13:49:26 EDT
(In reply to comment #4)
> Yeah, I was wondering if there was any chance we could release something that
> would be incompatible with 3.5, but somehow work with 3.6?  In this case the
> 3.5 -> current would be interesting.

Yes it is certainly possible. For example we added various metadata concepts in 3.6 (expression language, negation, etc). If 3.7 started to leverage this new metadata, then 3.5 would not understand it. However that might be an acceptable tradeoff if we do decide to use these concepts.
Comment 6 Kim Moir CLA 2010-10-19 08:51:52 EDT
If you intend to go ahead with the change, there are corresponding modifications needed in the releng build.  The build currently fetches the 3.5 binaries and copies them to the test machines and creates a property file specifying their location.  This will have to be updated to specify 3.6 files.
Comment 7 Pascal Rapicault CLA 2010-12-23 22:43:22 EST
Setting a milestone as I believe that this is very important to ensure and we need to do it sooner rather than later.
Comment 8 DJ Houghton CLA 2011-01-12 10:04:36 EST
Kim, I am working on updating these tests. Could you please look at what changes we will need to make in the builder/test framework? Thanks.
Comment 9 DJ Houghton CLA 2011-01-12 10:49:04 EST
Created attachment 186644 [details]
patch for p2.tests
Comment 10 Kim Moir CLA 2011-01-12 10:57:28 EST
The builder should be fine. I see you are just installing from repos. DJ you can release this patch and I can run a test build for these tests only.
Comment 11 DJ Houghton CLA 2011-01-12 10:59:46 EST
I'm installing from repos but will need a copy of the 3.6 platform binary as a starting point on the test machines. Similar to how we set up "org.eclipse.equinox.p2.reconciler.tests.35.platform.archive", we'll also need to set the "org.eclipse.equinox.p2.reconciler.tests.36.platform.archive" System property.
Comment 12 Kim Moir CLA 2011-01-12 11:16:42 EST
I have the following specified in equinoxp2tests.properties

org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux
org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx
org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.windows

I changed it to lastrelease so I don't have to update the version every release.  I also use this archive to invoke the director to install the JUnit test bundles from the test repo.
Comment 13 DJ Houghton CLA 2011-01-19 17:00:00 EST
Created attachment 187156 [details]
patch
Comment 14 DJ Houghton CLA 2011-01-19 17:00:39 EST
Patch released.
Comment 15 DJ Houghton CLA 2011-01-21 12:23:11 EST
We've had problems with this test the past couple of nights:

Linux - getting the following errors:

Initializing 3.6 to get the profile paths properly setup.: java.io.IOException: Cannot run program "/tmp/1295592166847-0.21108675401970745/eclipse/eclipse" (in directory "/tmp/1295592166847-0.21108675401970745"): java.io.IOException: error=2, No such file or directory

MacOS - test passes

Win - Test DNF

I've added some debugging to the test suites to hopefully help us find out what the problem is. Specifically since the error is that we can't run the exe, I've added checks after we extract the platform binary to check and see if the exe exists.
Comment 16 DJ Houghton CLA 2011-01-24 10:24:52 EST
Looks like the platform binary zips were 0 length on the test machines. Kim is going to fix it. Closing.
Comment 17 DJ Houghton CLA 2011-01-24 11:19:06 EST
The files were 0 length on the linux machines (kim has fixed it) and I think the windows problems were issues with the tests themselves which I have fixed.