RFR: JDK-8157850 Jar tests should pass through VM options

Jonathan Gibbons jonathan.gibbons at oracle.com
Wed May 25 20:04:36 UTC 2016


Using JAVA_OPTIONS for tools is conceptually wrong.

JAVA_OPTIONS is specifically intended to pass options to VM instances, 
as created by a "java" command.  It is not intended that you should 
prefix the options with -J and use them for arbitrary tools.

The code in the webrev is also perverse for taking the trouble to split 
the string to a stream, collect the results into a list, convert the 
list back into a stream again and use .forEach.

You could do better, and much simpler, with something like

     if (!option.isEmpty()) {
         commands.addAll(Arrays.asList(option.split("\\s+",-1)));
     }

-- Jon


On 05/25/2016 10:48 AM, Martin Buchholz wrote:
> Hi Andrey,
>
> Looking at http://openjdk.java.net/jtreg/vmoptions.html,
> I see we have both test.vm.opts and test.tool.vm.opts
> and the latter is supposed to take care of adding "-J".
>
> +        VM_OPTIONS.stream().map(opt -> "-J" + opt).forEach(commands::add);
> +        JAVA_OPTIONS.stream().map(opt -> "-J" + opt).forEach(commands::add);
>
> ---
>
> Maybe splitting on "\\s+" would be better.
>
> ---
>
> I think we should have test library methods to return the List<String>
> for java subprocesses, one that could try hard to get the option
> tokenization correct.
>
> ---
>
>
> On Wed, May 25, 2016 at 9:07 AM, Andrey Nazarov
> <andrey.x.nazarov at oracle.com> wrote:
>> Some jar tests start VMs without passing vmoptions from jtreg.
>>
>> This fix pass jtreg's vmoptions and javaoptions to processes(java, jar,
>> javac) started by tests.
>>
>> webrev: http://cr.openjdk.java.net/~anazarov/8157850/webrev.01/
>>
>> jbs: https://bugs.openjdk.java.net/browse/JDK-8157850
>>
>> --Andrey
>>




More information about the core-libs-dev mailing list