< prev index next > test/hotspot/jtreg/runtime/cds/appcds/aotCache/AOTMapTest.java
Print this page
* @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;
ArrayList<String> vmArgs = new ArrayList<>();
vmArgs.add("-Xmx128M");
vmArgs.add("-Xlog:aot=debug");
// 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 logSuffix = ":none:filesize=0";
! if (runMode == RunMode.ASSEMBLY || runMode == RunMode.DUMP_DYNAMIC) {
vmArgs.add(logMapPrefix + dumpMapFile + logSuffix);
} else if (runMode == RunMode.PRODUCTION) {
vmArgs.add(logMapPrefix + runMapFile + logSuffix);
vmArgs.add("-Xlog:class+load:file=" + classLoadLogFile + logSuffix);
}
ArrayList<String> 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=trace,aot+map+oops=trace:file=";
String logSuffix = ":none:filesize=0";
! 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);
}
< prev index next >