20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package jdk.jfr.event.runtime;
27
28 import java.time.Duration;
29 import java.util.List;
30
31 import jdk.jfr.Recording;
32 import jdk.jfr.consumer.RecordedClass;
33 import jdk.jfr.consumer.RecordedClassLoader;
34 import jdk.jfr.consumer.RecordedEvent;
35 import jdk.test.lib.Asserts;
36 import jdk.test.lib.jfr.EventNames;
37 import jdk.test.lib.jfr.Events;
38 import jdk.test.lib.jfr.TestClassLoader;
39
40 /*
41 * @test
42 * @summary The test verifies that a class unload event is created when class is unloaded
43 * @key jfr
44 * @library /test/lib /test/jdk
45 * @build jdk.jfr.event.runtime.TestClasses
46 * @run main/othervm -Xlog:class+unload -Xlog:gc -Xmx16m jdk.jfr.event.runtime.TestClassUnloadEvent
47 */
48
49 /**
50 * System.gc() will trigger class unloading if -XX:+ExplicitGCInvokesConcurrent is NOT set.
51 * If this flag is set G1 will never unload classes on System.gc() and
52 * CMS will not guarantee that all semantically dead classes will be unloaded.
53 * As far as the "jfr" key guarantees no VM flags are set from the outside
54 * it should be enough with System.gc().
55 */
56 public final class TestClassUnloadEvent {
57 private final static String TEST_CLASS_NAME = "jdk.jfr.event.runtime.TestClasses";
58 private final static String EVENT_PATH = EventNames.ClassUnload;
59
60 // Declare unloadableClassLoader as "public static"
61 // to prevent the compiler to optimize away all unread writes
62 public static TestClassLoader unloadableClassLoader;
63
|
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package jdk.jfr.event.runtime;
27
28 import java.time.Duration;
29 import java.util.List;
30
31 import jdk.jfr.Recording;
32 import jdk.jfr.consumer.RecordedClass;
33 import jdk.jfr.consumer.RecordedClassLoader;
34 import jdk.jfr.consumer.RecordedEvent;
35 import jdk.test.lib.Asserts;
36 import jdk.test.lib.jfr.EventNames;
37 import jdk.test.lib.jfr.Events;
38 import jdk.test.lib.jfr.TestClassLoader;
39
40 /**
41 * @test
42 * @summary The test verifies that a class unload event is created when class is unloaded
43 * @key jfr
44 * @requires vm.hasJFR
45 * @library /test/lib /test/jdk
46 * @build jdk.jfr.event.runtime.TestClasses
47 * @run main/othervm -Xlog:class+unload -Xlog:gc -Xmx16m jdk.jfr.event.runtime.TestClassUnloadEvent
48 */
49
50 /**
51 * System.gc() will trigger class unloading if -XX:+ExplicitGCInvokesConcurrent is NOT set.
52 * If this flag is set G1 will never unload classes on System.gc() and
53 * CMS will not guarantee that all semantically dead classes will be unloaded.
54 * As far as the "jfr" key guarantees no VM flags are set from the outside
55 * it should be enough with System.gc().
56 */
57 public final class TestClassUnloadEvent {
58 private final static String TEST_CLASS_NAME = "jdk.jfr.event.runtime.TestClasses";
59 private final static String EVENT_PATH = EventNames.ClassUnload;
60
61 // Declare unloadableClassLoader as "public static"
62 // to prevent the compiler to optimize away all unread writes
63 public static TestClassLoader unloadableClassLoader;
64
|