< prev index next >

test/jdk/jdk/jfr/event/runtime/TestClassLoadEvent.java

Print this page

        

*** 45,85 **** * @build jdk.jfr.event.runtime.TestClasses * @run main/othervm jdk.jfr.event.runtime.TestClassLoadEvent */ public final class TestClassLoadEvent { ! private final static String TEST_CLASS_NAME = "jdk.jfr.event.runtime.TestClasses"; ! private final static String BOOT_CLASS_LOADER_NAME = "bootstrap"; ! private final static String SEARCH_CLASS_NAME = "java.lang.Object"; ! private final static String SEARCH_PACKAGE_NAME = "java/lang"; ! private final static String SEARCH_MODULE_NAME = "java.base"; ! private final static String EVENT_NAME = EventNames.ClassLoad; public static void main(String[] args) throws Throwable { Recording recording = new Recording(); ! recording.enable(EVENT_NAME).withThreshold(Duration.ofMillis(0)); TestClassLoader cl = new TestClassLoader(); recording.start(); ! cl.loadClass(TEST_CLASS_NAME); recording.stop(); List<RecordedEvent> events = Events.fromRecording(recording); boolean isLoaded = false; for (RecordedEvent event : events) { ! RecordedClass loadedClass = event.getValue("loadedClass"); ! if (SEARCH_CLASS_NAME.equals(loadedClass.getName())) { ! System.out.println(event); ! Events.assertClassPackage(loadedClass, SEARCH_PACKAGE_NAME); ! Events.assertClassModule(loadedClass, SEARCH_MODULE_NAME); ! RecordedClassLoader initiatingClassLoader = event.getValue("initiatingClassLoader"); ! Asserts.assertEquals(cl.getClass().getName(), initiatingClassLoader.getType().getName(), ! "Expected type " + cl.getClass().getName() + ", got type " + initiatingClassLoader.getType().getName()); ! RecordedClassLoader definingClassLoader = loadedClass.getClassLoader(); ! Asserts.assertEquals(BOOT_CLASS_LOADER_NAME, definingClassLoader.getName(), ! "Expected boot loader to be the defining class loader"); ! Asserts.assertNull(definingClassLoader.getType(), "boot loader should not have a type"); ! isLoaded = true; ! } } - Asserts.assertTrue(isLoaded, "No class load event found for class " + SEARCH_CLASS_NAME); } } --- 45,66 ---- * @build jdk.jfr.event.runtime.TestClasses * @run main/othervm jdk.jfr.event.runtime.TestClassLoadEvent */ public final class TestClassLoadEvent { ! private final static String EVENT_NAME = EventNames.JavaThreadStatistics; public static void main(String[] args) throws Throwable { Recording recording = new Recording(); ! recording.enable(EVENT_NAME).withThreshold(Duration.ofMillis(2000)); TestClassLoader cl = new TestClassLoader(); recording.start(); ! // make something happen recording.stop(); List<RecordedEvent> events = Events.fromRecording(recording); boolean isLoaded = false; for (RecordedEvent event : events) { ! Long safepointId = event.getValue("safepointId"); } } }
< prev index next >