RFR: 8272348: Update CDS tests in anticipation of JDK-8270489

Ioi Lam iklam at openjdk.java.net
Thu Aug 12 00:10:34 UTC 2021

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.


Commit messages:
 - 8272348: Update CDS tests in anticipation of JDK-8270489

Changes: https://git.openjdk.java.net/jdk/pull/5095/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5095&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8272348
  Stats: 81 lines in 22 files changed: 27 ins; 0 del; 54 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5095.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5095/head:pull/5095

PR: https://git.openjdk.java.net/jdk/pull/5095

More information about the hotspot-runtime-dev mailing list