8005978: shell tests need to use the $COMPILEJDK for javac, jar and other tools
I'm currently trying to run the jdk tests on the compact profiles. As the profile builds are runtimes only, they don't have tools such as javac and so need to be run with both -jdk and -compilejdk. That works okay except for the shell tests because many of them launch the "javac" or "jar" tools directly and so fail because the runtime under test ($TESTJAVA) is not a JDK. I'd like to update the shell tests to use the tools in $COMPILEJAVA, this is the JDK specified to jtreg with -compilejdk or it's the same as $TESTJAVA when -compilejdk is not specified. The webrev with the proposed changes is here: http://cr.openjdk.java.net/~alanb/8005978/webrev/ For the most part this is just s/TESTJAVA/COMPILEJAVA/ although there are a couple of subtle things to watch out for - for example tool tests should be testing the tools in $TESTJAVA, not $COMPILEJAVA. Many of the shell tests were created to be runnable outside of jtreg so I've preserved this where it was previously supported. I should note that this is not all of the shell tests, I don't have time to fix the tests in areas that aren't interesting for the profiles so contributions to do more would be welcome. Another thing is that a lot of these shell tests are old tests and a lot of them don't really need to be shell tests. I mention this because another great effort would be be gradually replace many of these shell tests. -Alan.
Skimming over this it looks fine to me. You could add TESTTOOLVMOPTS while there ;-) -Chris. On 01/10/2013 01:14 PM, Alan Bateman wrote:
I'm currently trying to run the jdk tests on the compact profiles. As the profile builds are runtimes only, they don't have tools such as javac and so need to be run with both -jdk and -compilejdk. That works okay except for the shell tests because many of them launch the "javac" or "jar" tools directly and so fail because the runtime under test ($TESTJAVA) is not a JDK. I'd like to update the shell tests to use the tools in $COMPILEJAVA, this is the JDK specified to jtreg with -compilejdk or it's the same as $TESTJAVA when -compilejdk is not specified.
The webrev with the proposed changes is here:
http://cr.openjdk.java.net/~alanb/8005978/webrev/
For the most part this is just s/TESTJAVA/COMPILEJAVA/ although there are a couple of subtle things to watch out for - for example tool tests should be testing the tools in $TESTJAVA, not $COMPILEJAVA. Many of the shell tests were created to be runnable outside of jtreg so I've preserved this where it was previously supported.
I should note that this is not all of the shell tests, I don't have time to fix the tests in areas that aren't interesting for the profiles so contributions to do more would be welcome. Another thing is that a lot of these shell tests are old tests and a lot of them don't really need to be shell tests. I mention this because another great effort would be be gradually replace many of these shell tests.
-Alan.
On 10/01/2013 20:36, Chris Hegarty wrote:
Skimming over this it looks fine to me.
You could add TESTTOOLVMOPTS while there ;-)
-Chris. We probably should have added ${TESTTOOLVMOPTS} as part of Mark Sheppard's work in 8003890.
Anyway as I'm adding ${TESTJAVACOPTS} to the javac usages then it's easy to add ${TESTTOOLVMOPTS} too, I've also added to the other "tools" used by the tests that I'm changing. There are a couple of cases where it's not possible to do this, for example there are number of older security tests that compile with -source and -target 1.4 and these will conflict if I run jtreg with something like -javacoptions:"-profile compac1". I've created a bug for this as it's not clear why these tests want to target 1.4. Another one is the security tests that use NSS where VM options such as -d64 will not work because the tests are choosing the architecture of the shared library to use. I've also added a few ${TESTVMOPTS} to tests that were skipped by 8003890. Interestingly, adding this to the Formater/Basic.sh test exposes a bug in Formatter when running the tests with -esa. Previously the VM options were being dropped on the floor so this was not noticed. I've created a bug for this too and added the test to the ProblemList.txt until this gets fixed. The webrev is updated: http://cr.openjdk.java.net/~alanb/8005978/webrev/ I'd like to this out of the way, and I will of course run the tests on all platforms before pushing it. -Alan.
Wow, you've actually done it, I was only joking! The updated webrev ( after a quick skim ) looks great. -Chris. On 11/01/2013 14:37, Alan Bateman wrote:
On 10/01/2013 20:36, Chris Hegarty wrote:
Skimming over this it looks fine to me.
You could add TESTTOOLVMOPTS while there ;-)
-Chris. We probably should have added ${TESTTOOLVMOPTS} as part of Mark Sheppard's work in 8003890.
Anyway as I'm adding ${TESTJAVACOPTS} to the javac usages then it's easy to add ${TESTTOOLVMOPTS} too, I've also added to the other "tools" used by the tests that I'm changing. There are a couple of cases where it's not possible to do this, for example there are number of older security tests that compile with -source and -target 1.4 and these will conflict if I run jtreg with something like -javacoptions:"-profile compac1". I've created a bug for this as it's not clear why these tests want to target 1.4. Another one is the security tests that use NSS where VM options such as -d64 will not work because the tests are choosing the architecture of the shared library to use.
I've also added a few ${TESTVMOPTS} to tests that were skipped by 8003890. Interestingly, adding this to the Formater/Basic.sh test exposes a bug in Formatter when running the tests with -esa. Previously the VM options were being dropped on the floor so this was not noticed. I've created a bug for this too and added the test to the ProblemList.txt until this gets fixed.
The webrev is updated:
http://cr.openjdk.java.net/~alanb/8005978/webrev/
I'd like to this out of the way, and I will of course run the tests on all platforms before pushing it.
-Alan.
participants (2)
-
Alan Bateman
-
Chris Hegarty