RFR(S) 8209927 - Split appcds/sharedStrings/IncompatibleOptions.java into several tests
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Fri Aug 24 16:49:53 UTC 2018
On 8/24/18 11:00 AM, Ioi Lam wrote:
> Hi Coleen, thanks for the review!
>
>
> On 8/24/18 6:43 AM, coleen.phillimore at oracle.com wrote:
>>
>> http://cr.openjdk.java.net/~iklam/jdk12/8209927-split-incompatible-options-test.v01/test/hotspot/jtreg/runtime/appcds/sharedStrings/IncompatibleOptions_A.java.html
>>
>>
>> Should this only have copyright 2018.
>>
> Fixed.
>> Is this affected by any global options passed when running the tests?
>> Does it need run/driver instead?
>>
>
> The tests' main class (IncompatibleOptions) is affected by global
> options, because it calls
> sun.hotspot.tools.ctw.Compiler.isGraalEnabled(), which uses WhiteBox
> to call into the VM to inspect internal states. Here, "@run
> main/othervm" is necessary because I have to pass the options to
> enable WhiteBox:
>
> * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI
> -Xbootclasspath/a:. IncompatibleOptions -XX:+UseStringDeduplication
>
> BTW, the main class will (indirectly) use
> jdk.test.lib.process.ProcessTools to create a ProcessBuilder for
> launching a child process, and specifies -XX:+UseStringDeduplication
> in the command-line. ProcessTools basically first copies from the
> global VM options, and then appends -XX:+UseStringDeduplication to it.
> So even if I run with "jtreg -vmoptions:-XX:-UseStringDeduplication
> IncompatibleOptions_B.java", the child process's command-line will end
> up being "... -XX:-UseStringDeduplication ...
> -XX:+UseStringDeduplication", so the test basically overrides any
> options that were specified by -vmoptions.
Thank you for the explanation! Looks good to me.
Coleen
>
> Thanks
> - Ioi
>
>
>> Thanks,
>> Coleen
>>
>>
>> On 8/24/18 1:34 AM, Ioi Lam wrote:
>>> https://bugs.openjdk.java.net/browse/JDK-8209927
>>> http://cr.openjdk.java.net/~iklam/jdk12/8209927-split-incompatible-options-test.v01/
>>>
>>>
>>> We have several CDS tests that spawn a lot of child processes
>>> sequentially and could take a long time. We should split them
>>> up into several test cases to speed up test execution time when
>>> the tests are executed in parallel by jtreg.
>>>
>>> This also makes the tests less likely to timeout.
>>>
>>> IncompatibleOptions.java is the first in the batch.
>>>
>>> I also fixed a bug in the @run command. It used to be:
>>>
>>> @run main/othervm -XX:+UseStringDeduplication ....
>>>
>>> The intention was to pass the -XX option to the child processes, but
>>> this
>>> option ended up only impacting the main test process, which is just
>>> like a
>>> shell script and doesn't directly touch any functionality that we
>>> want to
>>> test.
>>>
>>> The fix is to pass the -XX option as a command-line argument to the
>>> main
>>> test, which then passes this option to the child processes via
>>> TestCommon.dump/TestCommon.exec.
>>>
>>> Thanks
>>> - Ioi
>>
>
More information about the hotspot-runtime-dev
mailing list