RFR: 8320750: Allow a testcase to run with muliple -Xlog

Johan Sjölen jsjolen at openjdk.org
Tue Nov 28 14:14:29 UTC 2023


On Mon, 27 Nov 2023 13:32:52 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

Hi Leo,

I'm sorry but I don't understand this change. What I do know is that `-Xlog` supports multiple arguments and that it is indeed required to use at least one argument when enabling async logging or first disabling stdout/stderr logging:

>-Xlog:async -Xlog:gc=debug:file=gc.log -Xlog:safepoint=trace

>-Xlog:disable -Xlog:safepoint=trace:safepointtrace.txt

What exactly happens to a testcase which requires two arguments? I guess that we have none, as these would have crashed?

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

PR Comment: https://git.openjdk.org/jdk/pull/16824#issuecomment-1827923013


More information about the hotspot-dev mailing list