RFR: 8320750: Allow a testcase to run with muliple -Xlog
Leo Korinth
lkorinth at openjdk.org
Wed Nov 29 13:57:06 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
I think this feature will mostly be used to filter out un-allowed flag combinations, and I guess the user will seldom if ever be interested in the actual values (just the keys). Do you have an idea for something that is less fragile? I find it a bit ugly to special case `-Xlog` as was done by me and if you prefer we could set the value to the last `-Xlog`, but that is ugly as well. I wanted this to be similar as the built in `-XX` and from my understanding that code just uses the latest value.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16824#issuecomment-1831939865
More information about the hotspot-dev
mailing list