27 * @summary Test verify that WB methods isObjectInOldGen and youngGC works correctly.
28 * @library /testlibrary /test/lib
29 * @modules java.base/sun.misc
30 * java.management
31 * @build TestWBGC
32 * @run main ClassFileInstaller sun.hotspot.WhiteBox
33 * @run driver TestWBGC
34 */
35 import jdk.test.lib.*;
36 import sun.hotspot.WhiteBox;
37
38 public class TestWBGC {
39
40 public static void main(String args[]) throws Exception {
41 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
42 true,
43 "-Xbootclasspath/a:.",
44 "-XX:+UnlockDiagnosticVMOptions",
45 "-XX:+WhiteBoxAPI",
46 "-XX:MaxTenuringThreshold=1",
47 "-XX:+PrintGC",
48 GCYoungTest.class.getName());
49
50 OutputAnalyzer output = new OutputAnalyzer(pb.start());
51 System.out.println(output.getStdout());
52 output.shouldHaveExitValue(0);
53 output.shouldContain("WhiteBox Initiated Young GC");
54 output.shouldNotContain("Full");
55 // To be sure that we don't provoke Full GC additionaly to young
56 }
57
58 public static class GCYoungTest {
59 static WhiteBox wb = WhiteBox.getWhiteBox();
60 public static Object obj;
61
62 public static void main(String args[]) {
63 obj = new Object();
64 Asserts.assertFalse(wb.isObjectInOldGen(obj));
65 wb.youngGC();
66 wb.youngGC();
67 // 2 young GC is needed to promote object into OldGen
|
27 * @summary Test verify that WB methods isObjectInOldGen and youngGC works correctly.
28 * @library /testlibrary /test/lib
29 * @modules java.base/sun.misc
30 * java.management
31 * @build TestWBGC
32 * @run main ClassFileInstaller sun.hotspot.WhiteBox
33 * @run driver TestWBGC
34 */
35 import jdk.test.lib.*;
36 import sun.hotspot.WhiteBox;
37
38 public class TestWBGC {
39
40 public static void main(String args[]) throws Exception {
41 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
42 true,
43 "-Xbootclasspath/a:.",
44 "-XX:+UnlockDiagnosticVMOptions",
45 "-XX:+WhiteBoxAPI",
46 "-XX:MaxTenuringThreshold=1",
47 "-Xlog:gc",
48 GCYoungTest.class.getName());
49
50 OutputAnalyzer output = new OutputAnalyzer(pb.start());
51 System.out.println(output.getStdout());
52 output.shouldHaveExitValue(0);
53 output.shouldContain("WhiteBox Initiated Young GC");
54 output.shouldNotContain("Full");
55 // To be sure that we don't provoke Full GC additionaly to young
56 }
57
58 public static class GCYoungTest {
59 static WhiteBox wb = WhiteBox.getWhiteBox();
60 public static Object obj;
61
62 public static void main(String args[]) {
63 obj = new Object();
64 Asserts.assertFalse(wb.isObjectInOldGen(obj));
65 wb.youngGC();
66 wb.youngGC();
67 // 2 young GC is needed to promote object into OldGen
|