RFR: 8320750: Allow a testcase to run with multiple -Xlog [v2]

David Holmes dholmes at openjdk.org
Thu Feb 8 06:42:00 UTC 2024


On Wed, 7 Feb 2024 20:37:15 GMT, Leo Korinth <lkorinth at openjdk.org> wrote:

>> Running a testcase with muliple -Xlog crashes JTREG test cases. This is because `Collector.toMap` is not given a merge strategy.
>> 
>> When the same argument is passed multiple times, I have added a merge strategy to use the latter value. This is similar to how it is implemented for `vm.opt.*` in JTREG.
>> 
>> If the flag tested is `-Xlog`, replace the value part with a dummy value "NONEMPTY_TEST_SENTINEL". This is because in the case of multiple `-Xlog` all values are used, and JTREG does not give a satisfactory way to represent them. This dummy value should make it hard to try to `@require` on specific values by mistake.
>> 
>> Tested with:
>> 
>>  @requires vm.opt.x.Xlog == "NONEMPTY_TEST_SENTINEL"
>>  @requires vm.opt.x.Xlog == "NONEMPTY_TEST_SENTINELXXX"
>>  @requires vm.opt.x.Xms == "3g"
>> 
>> and
>> 
>> JAVA_OPTIONS=-Xms3g -Xms4g
>> JAVA_OPTIONS=-Xms4g -Xms3g
>> JAVA_OPTIONS=-Xlog:gc* -Xlog:gc*
>> ``` 
>> 
>> Running tier1
>
> Leo Korinth has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Added test, reworked code structure after suggestions from Stefan and Johan

test/jtreg-ext/requires/VMProps.java line 727:

> 725:      * Split an -Xflag string into a name part (without leading dash)
> 726:        and a value part ("true" if no value was given)
> 727:      */

May I suggest sparing the reader some effort and adding a couple of examples e.g.:

-Xmx4g => (Xmx, 4g)
-Xcheck:jni => (Xcheck, :jni)
-Xbootclasspath/a:<path> => (Xbootclasspath, /a:<path>)

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16824#discussion_r1482470909


More information about the hotspot-dev mailing list