< prev index next >

test/hotspot/jtreg/runtime/cds/appcds/aotCache/AOTMapTest.java

Print this page
*** 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 ***
              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);
              }
--- 125,25 ---
              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 >