34 import java.net.URLClassLoader;
35 import java.nio.file.Path;
36 import java.nio.file.Paths;
37
38 /**
39 * @test gc.g1.humongousObjects.TestHumongousClassLoader
40 * @summary Checks that unreachable classes and unreachable humongous class loader are unloaded after GC
41 * @requires vm.gc=="G1" | vm.gc=="null"
42 * @requires vm.opt.G1HeapRegionSize == "null" | vm.opt.G1HeapRegionSize == "1M"
43 * @library /testlibrary /test/lib /
44 * @modules java.management
45 * @build sun.hotspot.WhiteBox
46 * gc.testlibrary.Helpers
47 * gc.g1.humongousObjects.G1SampleClass
48 * gc.g1.humongousObjects.ClassLoaderGenerator
49 * gc.g1.humongousObjects.TestHumongousClassLoader
50 *
51 * @run driver ClassFileInstaller sun.hotspot.WhiteBox
52 * sun.hotspot.WhiteBox$WhiteBoxPermission
53 *
54 * @run main/othervm/timeout=240 -Xms256M -Xmx256M -XX:+WhiteBoxAPI -Xbootclasspath/a:.
55 * gc.g1.humongousObjects.ClassLoaderGenerator 1
56 *
57 * @run main/othervm -Xms256M -Xmx256M -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:.
58 * -Xlog:classload,classunload=debug:file=TestHumongousClassLoader_Full_GC.log
59 * -XX:G1HeapRegionSize=1M
60 * gc.g1.humongousObjects.TestHumongousClassLoader FULL_GC
61 *
62 * @run main/othervm -Xms256M -Xmx256M -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:.
63 * -Xlog:classload,classunload=debug:file=TestHumongousClassLoader_Full_GC_Mem_Pressure.log
64 * -XX:G1HeapRegionSize=1M
65 * gc.g1.humongousObjects.TestHumongousClassLoader FULL_GC_MEMORY_PRESSURE
66 *
67 *@run main/othervm -Xms256M -Xmx256M -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:.
68 * -Xlog:classload,classunload=debug:file=TestHumongousClassLoader_CMC.log
69 * -XX:G1HeapRegionSize=1M -XX:MaxTenuringThreshold=1
70 * gc.g1.humongousObjects.TestHumongousClassLoader CMC
71 *
72 */
73
74 public class TestHumongousClassLoader {
|
34 import java.net.URLClassLoader;
35 import java.nio.file.Path;
36 import java.nio.file.Paths;
37
38 /**
39 * @test gc.g1.humongousObjects.TestHumongousClassLoader
40 * @summary Checks that unreachable classes and unreachable humongous class loader are unloaded after GC
41 * @requires vm.gc=="G1" | vm.gc=="null"
42 * @requires vm.opt.G1HeapRegionSize == "null" | vm.opt.G1HeapRegionSize == "1M"
43 * @library /testlibrary /test/lib /
44 * @modules java.management
45 * @build sun.hotspot.WhiteBox
46 * gc.testlibrary.Helpers
47 * gc.g1.humongousObjects.G1SampleClass
48 * gc.g1.humongousObjects.ClassLoaderGenerator
49 * gc.g1.humongousObjects.TestHumongousClassLoader
50 *
51 * @run driver ClassFileInstaller sun.hotspot.WhiteBox
52 * sun.hotspot.WhiteBox$WhiteBoxPermission
53 *
54 * @run main/othervm/timeout=240 -Xms256M -Xmx256M -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:.
55 * gc.g1.humongousObjects.ClassLoaderGenerator 1
56 *
57 * @run main/othervm -Xms256M -Xmx256M -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:.
58 * -Xlog:classload,classunload=debug:file=TestHumongousClassLoader_Full_GC.log
59 * -XX:G1HeapRegionSize=1M
60 * gc.g1.humongousObjects.TestHumongousClassLoader FULL_GC
61 *
62 * @run main/othervm -Xms256M -Xmx256M -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:.
63 * -Xlog:classload,classunload=debug:file=TestHumongousClassLoader_Full_GC_Mem_Pressure.log
64 * -XX:G1HeapRegionSize=1M
65 * gc.g1.humongousObjects.TestHumongousClassLoader FULL_GC_MEMORY_PRESSURE
66 *
67 *@run main/othervm -Xms256M -Xmx256M -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:.
68 * -Xlog:classload,classunload=debug:file=TestHumongousClassLoader_CMC.log
69 * -XX:G1HeapRegionSize=1M -XX:MaxTenuringThreshold=1
70 * gc.g1.humongousObjects.TestHumongousClassLoader CMC
71 *
72 */
73
74 public class TestHumongousClassLoader {
|