RFR: 8272348: Update CDS tests in anticipation of JDK-8270489 [v2]
iignatyev at openjdk.java.net
Thu Aug 12 05:49:26 UTC 2021
On Thu, 12 Aug 2021 04:45:00 GMT, Ioi Lam <iklam at openjdk.org> wrote:
>> For testing https://github.com/openjdk/jdk/pull/5074 (Support archived heap objects in EpsilonGC), some CDS tests should be updated:
>> (1) Add `@require vm.gc == null` to mark test cases that will fail if a collector is explicitly specified using `-XX:+UseXXXGC`
>> (2) Rename this WhiteBox API to reflect what it checks:
>> !WB.areSharedStringsIgnored() -> WB.areSharedStringsMapped()
>> With EpsilonGC, the shared strings are not "ignored", but they are also not "mapped" either (they are copied into the Java heap). The existing tests are for mapped strings only, so they should check for `WB.areSharedStringsMapped()`.
>> (3) For test cases that check if a heap object is a shared interned string, instead of the generic `WB.isShared(Object o)` API, use a new specific API `WB.isSharedInternedString(String s)`. This API currently works only for "mapped shared strings", but in the future we may enhance it to check for "loaded shared strings" by EpsilonGC.
>> (4) Also fix the two test cases that were sensitive to irregular -Xlog output:
>> - ServiceLoaderTest.java: remove timestamp decorations from the logs
>> - DumpClassList.java: handle extra space characters that may appear in the tag decoration between square brackets.
> Ioi Lam has updated the pull request incrementally with one additional commit since the last revision:
> fixed copyright year
test/lib/sun/hotspot/WhiteBox.java line 596:
> 594: public native boolean isSharedClass(Class<?> c);
> 595: public native boolean areSharedStringsMapped();
> 596: public native boolean isSharedInternedString(String s);
please also update `jdk.test.whitebox.WhiteBox`
More information about the hotspot-runtime-dev