RFR: 8269032: Stringdedup tests are failing if the ergonomically select GC does not support it
pliden at openjdk.java.net
Tue Jun 29 11:12:05 UTC 2021
On Sun, 27 Jun 2021 01:38:24 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:
> Please review this change to the string deduplication tests' handling of an
> ergonomically chosen GC. They were assuming G1 would be chosen in that
> case, but that's wrong of course. The test machine might not be a server
> class machine, or G1 might not be included in the build.
> Each test now has a second test declaration comment for handling the case
> where no GC is specified by the jtreg invocation. This second declaration
> will force the use of G1 by the test if G1 is supported by the VM.
> I looked into trying to be more clever and selecting a different GC if G1 is
> not supported by the VM, but that ended up making the tests a lot more
> messy, and doesn't seem like that important a use-case at this time. A
> better long-term solution would be to make all the GCs (except Epsilon)
> support string deduplication, so we don't care which GC gets ergonomically
> chosen. But that's not happening today.
> Ran the string deduplication tests with various configurations: (1)
> explicitly use G1 (2) no explicit GC, (3) no explicit GC with
test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationAgeThreshold.java line 30:
> 28: * @summary Test string deduplication age threshold
> 29: * @bug 8029075
> 30: * @requires vm.gc == "G1" | vm.gc == "Shenandoah"
I think this should be `@requires vm.gc.G1` and it should pass `-XX:+UseG1GC`to the test, which it appends to the list of arguments for the JVM that will be spawned.
test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationAgeThreshold.java line 44:
> 42: * @bug 8029075
> 43: * @requires vm.gc == "null" & vm.gc.G1
> 44: * @library /test/lib
... and same here, this should be `@requires vm.gc.Shenandoah` and it should pass `-XX:+UseShenandoahGC`to the test, which it appends to the list of arguments for the JVM that will be spawned.
Of course, same comments apply to all tests.
More information about the hotspot-gc-dev