diff a/test/hotspot/jtreg/runtime/cds/appcds/aotCache/AOTMapTest.java b/test/hotspot/jtreg/runtime/cds/appcds/aotCache/AOTMapTest.java --- a/test/hotspot/jtreg/runtime/cds/appcds/aotCache/AOTMapTest.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/aotCache/AOTMapTest.java @@ -45,10 +45,25 @@ * @run driver jdk.test.lib.helpers.ClassFileInstaller -jar app.jar AOTMapTestApp * @run driver jdk.test.lib.helpers.ClassFileInstaller -jar cust.jar Hello * @run main/othervm/timeout=240 -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. AOTMapTest DYNAMIC */ +/** + * @test id=valhalla + * @bug 8362566 + * @summary Test the contents of -Xlog:aot+map with AOT workflow and flat arrays + * @enablePreview + * @requires vm.cds.supports.aot.class.linking & vm.debug & vm.cds.write.archived.java.heap + * @library /test/lib /test/hotspot/jtreg/runtime/cds /test/hotspot/jtreg/runtime/cds/appcds/test-classes + * @modules java.base/jdk.internal.value java.base/jdk.internal.misc java.base/jdk.internal.vm.annotation + * @build Hello + * @compile test-classes/AOTMapTestApp.java + * @run driver jdk.test.lib.helpers.ClassFileInstaller -jar app.jar AOTMapTestApp AOTMapTestApp$Wrapper AOTMapTestApp$WrapperWrapper + * AOTMapTestApp$ArchivedData Hello + * @run main/othervm/timeout=240 AOTMapTest STATIC + */ + import java.io.File; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; import jdk.test.lib.cds.CDSAppTester; @@ -110,15 +125,25 @@ ArrayList vmArgs = new ArrayList<>(); vmArgs.add("-Xmx128M"); vmArgs.add("-Xlog:aot=debug"); + if (isStaticWorkflow()) { + vmArgs.add("--enable-preview"); + vmArgs.add("--add-exports"); + vmArgs.add("java.base/jdk.internal.value=ALL-UNNAMED"); + vmArgs.add("--add-exports"); + vmArgs.add("java.base/jdk.internal.misc=ALL-UNNAMED"); + vmArgs.add("-Xbootclasspath/a:" + appJar); + vmArgs.add("-XX:ArchiveHeapTestClass=AOTMapTestApp"); + } + // filesize=0 ensures that a large map file not broken up in multiple files. - String logMapPrefix = "-Xlog:aot+map=debug,aot+map+oops=trace:file="; + String logMapPrefix = "-Xlog:aot+map=trace,aot+map+oops=trace:file="; String logSuffix = ":none:filesize=0"; - if (runMode == RunMode.ASSEMBLY || runMode == RunMode.DUMP_DYNAMIC) { + if (runMode == RunMode.ASSEMBLY || runMode == RunMode.DUMP_DYNAMIC || runMode == RunMode.DUMP_STATIC) { vmArgs.add(logMapPrefix + dumpMapFile + logSuffix); } else if (runMode == RunMode.PRODUCTION) { vmArgs.add(logMapPrefix + runMapFile + logSuffix); vmArgs.add("-Xlog:class+load:file=" + classLoadLogFile + logSuffix); }