RFR for JDK-8028711: TEST_BUG: Tests should pass through VM options: corelibs tests

michael cui michael.cui at oracle.com
Fri Feb 7 03:41:48 UTC 2014

Hi Alan,

Based on current discussions we have had and existing usages in our code 
I would like to propose that the fix should ONLY make sure that 
${TESTVMOPTS} will be passed in when launching java from shell script.

For other options such as ${TESTJAVAOPTS} ${TESTTOOLVMOPTS} and 
Since we are not very clear about needs to make them presents all the 
time when launching java or other java tools from shell, it is better to 
not make changes to current usages.

Please let me know if you are ok with this approach.

Michael Cui

On 01/27/2014 09:22 AM, michael cui wrote:
> On 01/26/2014 05:14 PM, Alan Bateman wrote:
>> On 26/01/2014 08:10, michael cui wrote:
>>> Hi,
>>> Please review the following code changes for
>>> https://bugs.openjdk.java.net/browse/JDK-8028711
>>> The bug and fix are for enforcing the following rules:
>>> launch java from shell script, ${TESTVMOPTS} and ${TESTJAVAOPTS} 
>>> should be passed in.
>>> launch javac from shell script, ${TESTTOOLVMOPTS} and 
>>> ${TESTJAVACOPTS} should be passed in.
>>> So almost all the scripts who failed to follow above rules are 
>>> touched by this fix.
>>> There are very few exceptions since test cases explicitly state that 
>>> they are intended to launch java without any vm options.
>>> webrev
>>> http://cr.openjdk.java.net/~tyan/michael/JDK-8028711/webrev.01/
>> You might be aware of this area but we've had two previous efforts 
>> ([1] [2]) to update these tests to pass through options. 
> I am aware of efforts [1] JDK-8003890. Initially JDK-8028711 is opened 
> for double check the result of JDK-8003890 and fix them if there are 
> uncovered scripts.
> Initial list scripts need to touch are :
> java/lang/Thread/UncaughtExceptions.sh
> sun/tools/common/ApplicationSetup.sh
> sun/tools/jrunscript/jrunscript-argsTest.sh
> sun/tools/jrunscript/jrunscript-cpTest.sh
> sun/tools/jrunscript/jrunscript-DTest.sh
> sun/tools/jrunscript/jrunscript-eTest.sh
> sun/tools/jrunscript/jrunscript-fTest.sh
> sun/tools/jrunscript/jrunscriptTest.sh
> Later on, by reading http://openjdk.java.net/jtreg/vmoptions.html and  
> current last comments of JDK-8019502 (which is the parent of 
> JDK-8028711), also by exploring current existing usage (I mean large 
> part of scripts passing TESTJAVAOPTS or TESTJAVACOPTS.), I feel that 
> we might want to make the consistent usage of these two env variables 
> as well.
> I am not aware of efforts [2]. Thanks for the link.
>> I have to admit that I wasn't aware of TESTJAVAOPTS or TESTJAVACOPTS. 
>> Looking at the" jtreg -help all" page then these seem to correspond 
>> to -javaoption and -javacoption. I see -vmoption used all the time to 
>> specify options, I don't think I've seen -javaoption being used but I 
>> see your point. One thing that might be helpful here is some guidance 
>> or examples as it confusing to have so many options that initially 
>> appear to do the same thing.
> I just attached a very simple example to show the behaviours described 
> at http://openjdk.java.net/jtreg/vmoptions.html.
> Sample can download it from 
> https://bugs.openjdk.java.net/secure/attachment/18467/sample.zip
> My understanding of options is :
> When we start jtreg with "-vmoptions" , jtreg will set its value to 
> TESTVMOPTS and TESTTOOLVMOPTS before running shell script test (shell 
> scripts identified by jtreg tags @test and @run shell ). So if we call 
> java with TESTVMOPTS and call javac with TESTTOOLVMOPTS in shell 
> script, then it impact to both.
> If we want to set some options only for launching java without impact 
> other javac or other java tools, then we need to use "-javaoptions" 
> with jtreg. (Precondition : TESTJAVAOPTS was passed)
> Similarly, "-javacoptions" will only impact launching javac from all 
> shell scripts. (Precondition : TESTJAVACOPTS was passed)
> It would be less confusing if we could keep use them in a consistent way.
>> Mike Duigou might want to have a quick look to see if jdk/Makefile 
>> needs to be updated to support -javacoption. As these tests aren't 
>> really testing javac (except incidentally) then it might not be 
>> important but it's yet another place where you can loose a finger.
>> I haven't looked at all the files but just notice that you've updated 
>> the genXXX scripts. They are used to generate tests, they aren't 
>> tests themselves and so aren't run by jtreg.
> Then I will rollback those changes. I found three scripts belongs to 
> these category.
> test/java/nio/Buffer/genBasic.sh
> test/java/nio/Buffer/genCopyDirectMemory.sh
> test/java/util/Formatter/genBasic.sh
>> So are you planning to also update the java tests that create VMs to 
>> pass through the options? This point came up during previous efforts 
>> (and some test infrastructure has been added) but it isn't clear to 
>> me where we are on that.
> I don't plan to cover that in this bug fix. I though it will be 
> covered by JDK-8019502. I could work on that bug if you want me to 
> cover that as well.
>> -Alan.
>> [1] http://hg.openjdk.java.net/jdk8/tl/jdk/rev/ae5d04dbacd6
>> [2] http://hg.openjdk.java.net/jdk8/tl/jdk/rev/7da291690aa0
> -Michael Cui

More information about the core-libs-dev mailing list