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

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

Print this page

        

*** 59,68 **** TestCommon.testDump(appJar, TestCommon.list("Hello"), "-javaagent:" + agentJar, // Set the following property to see logs for dynamically generated classes // in STDOUT "-Djava.lang.invoke.MethodHandle.DUMP_CLASS_FILES=true"); TestCommon.run("-cp", appJar, "Hello") ! .assertNormalExit(); } } --- 59,82 ---- TestCommon.testDump(appJar, TestCommon.list("Hello"), "-javaagent:" + agentJar, // Set the following property to see logs for dynamically generated classes // in STDOUT "-Djava.lang.invoke.MethodHandle.DUMP_CLASS_FILES=true"); + + String prefix = ".class.load. "; + // class name pattern like the following: + // jdk.internal.loader.BuiltinClassLoader$$Lambda$1/1816757085 + // java.lang.invoke.LambdaForm$MH/1585787493 + String class_pattern = ".*Lambda([a-z0-9$]+)/([0-9]+).*"; + String suffix = ".*source: shared objects file.*"; + String pattern = prefix + class_pattern + suffix; + // during run time, anonymous classes shouldn't be loaded from the archive TestCommon.run("-cp", appJar, "Hello") ! .assertNormalExit(output -> output.shouldNotMatch(pattern)); ! ! // inspect the archive and make sure no anonymous class is in there ! TestCommon.run("-cp", appJar, ! "-XX:+PrintSharedArchiveAndExit", "-XX:+PrintSharedDictionary", "Hello") ! .assertNormalExit(output -> output.shouldNotMatch(class_pattern)); } }
test/hotspot/jtreg/runtime/appcds/javaldr/AnonVmClassesDuringDump.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File