test/hotspot/jtreg/runtime/appcds/javaldr/AnonVmClassesDuringDump.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File open Sdiff test/hotspot/jtreg/runtime/appcds/javaldr

test/hotspot/jtreg/runtime/appcds/javaldr/AnonVmClassesDuringDump.java

Print this page




  44         "Hello",
  45     };
  46     public static String agentClasses[] = {
  47         "AnonVmClassesDuringDumpTransformer",
  48     };
  49 
  50     public static void main(String[] args) throws Throwable {
  51         String agentJar =
  52             ClassFileInstaller.writeJar("AnonVmClassesDuringDumpTransformer.jar",
  53                                         ClassFileInstaller.Manifest.fromSourceFile("AnonVmClassesDuringDumpTransformer.mf"),
  54                                         agentClasses);
  55 
  56         String appJar =
  57             ClassFileInstaller.writeJar("AnonVmClassesDuringDumpApp.jar", appClasses);
  58 
  59         TestCommon.testDump(appJar, TestCommon.list("Hello"),
  60                             "-javaagent:" + agentJar,
  61                             // Set the following property to see logs for dynamically generated classes
  62                             // in STDOUT
  63                             "-Djava.lang.invoke.MethodHandle.DUMP_CLASS_FILES=true");









  64         TestCommon.run("-cp", appJar, "Hello")
  65             .assertNormalExit();





  66     }
  67 }
  68 


  44         "Hello",
  45     };
  46     public static String agentClasses[] = {
  47         "AnonVmClassesDuringDumpTransformer",
  48     };
  49 
  50     public static void main(String[] args) throws Throwable {
  51         String agentJar =
  52             ClassFileInstaller.writeJar("AnonVmClassesDuringDumpTransformer.jar",
  53                                         ClassFileInstaller.Manifest.fromSourceFile("AnonVmClassesDuringDumpTransformer.mf"),
  54                                         agentClasses);
  55 
  56         String appJar =
  57             ClassFileInstaller.writeJar("AnonVmClassesDuringDumpApp.jar", appClasses);
  58 
  59         TestCommon.testDump(appJar, TestCommon.list("Hello"),
  60                             "-javaagent:" + agentJar,
  61                             // Set the following property to see logs for dynamically generated classes
  62                             // in STDOUT
  63                             "-Djava.lang.invoke.MethodHandle.DUMP_CLASS_FILES=true");
  64 
  65         String prefix = ".class.load. ";
  66         // class name pattern like the following:
  67         // jdk.internal.loader.BuiltinClassLoader$$Lambda$1/1816757085
  68         // java.lang.invoke.LambdaForm$MH/1585787493
  69         String class_pattern = ".*Lambda([a-z0-9$]+)/([0-9]+).*";
  70         String suffix = ".*source: shared objects file.*";
  71         String pattern = prefix + class_pattern + suffix;
  72         // during run time, anonymous classes shouldn't be loaded from the archive
  73         TestCommon.run("-cp", appJar, "Hello")
  74             .assertNormalExit(output -> output.shouldNotMatch(pattern));
  75 
  76         // inspect the archive and make sure no anonymous class is in there
  77         TestCommon.run("-cp", appJar,
  78             "-XX:+PrintSharedArchiveAndExit", "-XX:+PrintSharedDictionary", "Hello")
  79             .assertNormalExit(output -> output.shouldNotMatch(class_pattern));
  80     }
  81 }
  82 
test/hotspot/jtreg/runtime/appcds/javaldr/AnonVmClassesDuringDump.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File