32
33 import com.oracle.java.testlibrary.ProcessTools;
34 import com.oracle.java.testlibrary.OutputAnalyzer;
35
36 public class TestGCLogMessages {
37 public static void main(String[] args) throws Exception {
38 testNormalLogs();
39 testWithToSpaceExhaustionLogs();
40 }
41
42 private static void testNormalLogs() throws Exception {
43
44 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
45 "-Xmx10M",
46 GCTest.class.getName());
47
48 OutputAnalyzer output = new OutputAnalyzer(pb.start());
49
50 output.shouldNotContain("[Redirty Cards");
51 output.shouldNotContain("[Code Root Purge");
52 output.shouldNotContain("[Young Free CSet");
53 output.shouldNotContain("[Non-Young Free CSet");
54 output.shouldHaveExitValue(0);
55
56 pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
57 "-Xmx10M",
58 "-XX:+PrintGCDetails",
59 GCTest.class.getName());
60
61 output = new OutputAnalyzer(pb.start());
62
63 output.shouldContain("[Redirty Cards");
64 output.shouldContain("[Code Root Purge");
65 output.shouldNotContain("[Young Free CSet");
66 output.shouldNotContain("[Non-Young Free CSet");
67 output.shouldHaveExitValue(0);
68
69 pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
70 "-Xmx10M",
71 "-XX:+PrintGCDetails",
72 "-XX:+UnlockExperimentalVMOptions",
73 "-XX:G1LogLevel=finest",
74 GCTest.class.getName());
75
76 output = new OutputAnalyzer(pb.start());
77
78 output.shouldContain("[Redirty Cards");
79 output.shouldContain("[Code Root Purge");
80 output.shouldContain("[Young Free CSet");
81 output.shouldContain("[Non-Young Free CSet");
82
83 // also check evacuation failure messages once
84 output.shouldNotContain("[Evacuation Failure");
85 output.shouldNotContain("[Recalculate Used");
86 output.shouldNotContain("[Remove Self Forwards");
87 output.shouldNotContain("[Restore RemSet");
88 output.shouldHaveExitValue(0);
89 }
90
91 private static void testWithToSpaceExhaustionLogs() throws Exception {
92 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
93 "-Xmx10M",
94 "-Xmn5M",
95 "-XX:+PrintGCDetails",
96 GCTestWithToSpaceExhaustion.class.getName());
97
98 OutputAnalyzer output = new OutputAnalyzer(pb.start());
99 output.shouldContain("[Evacuation Failure");
|
32
33 import com.oracle.java.testlibrary.ProcessTools;
34 import com.oracle.java.testlibrary.OutputAnalyzer;
35
36 public class TestGCLogMessages {
37 public static void main(String[] args) throws Exception {
38 testNormalLogs();
39 testWithToSpaceExhaustionLogs();
40 }
41
42 private static void testNormalLogs() throws Exception {
43
44 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
45 "-Xmx10M",
46 GCTest.class.getName());
47
48 OutputAnalyzer output = new OutputAnalyzer(pb.start());
49
50 output.shouldNotContain("[Redirty Cards");
51 output.shouldNotContain("[Code Root Purge");
52 output.shouldNotContain("[String Dedup Fixup");
53 output.shouldNotContain("[Young Free CSet");
54 output.shouldNotContain("[Non-Young Free CSet");
55 output.shouldHaveExitValue(0);
56
57 pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
58 "-XX:+UseStringDeduplication",
59 "-Xmx10M",
60 "-XX:+PrintGCDetails",
61 GCTest.class.getName());
62
63 output = new OutputAnalyzer(pb.start());
64
65 output.shouldContain("[Redirty Cards");
66 output.shouldContain("[Code Root Purge");
67 output.shouldContain("[String Dedup Fixup");
68 output.shouldNotContain("[Young Free CSet");
69 output.shouldNotContain("[Non-Young Free CSet");
70 output.shouldHaveExitValue(0);
71
72 pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
73 "-XX:+UseStringDeduplication",
74 "-Xmx10M",
75 "-XX:+PrintGCDetails",
76 "-XX:+UnlockExperimentalVMOptions",
77 "-XX:G1LogLevel=finest",
78 GCTest.class.getName());
79
80 output = new OutputAnalyzer(pb.start());
81
82 output.shouldContain("[Redirty Cards");
83 output.shouldContain("[Code Root Purge");
84 output.shouldContain("[String Dedup Fixup");
85 output.shouldContain("[Young Free CSet");
86 output.shouldContain("[Non-Young Free CSet");
87
88 // also check evacuation failure messages once
89 output.shouldNotContain("[Evacuation Failure");
90 output.shouldNotContain("[Recalculate Used");
91 output.shouldNotContain("[Remove Self Forwards");
92 output.shouldNotContain("[Restore RemSet");
93 output.shouldHaveExitValue(0);
94 }
95
96 private static void testWithToSpaceExhaustionLogs() throws Exception {
97 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
98 "-Xmx10M",
99 "-Xmn5M",
100 "-XX:+PrintGCDetails",
101 GCTestWithToSpaceExhaustion.class.getName());
102
103 OutputAnalyzer output = new OutputAnalyzer(pb.start());
104 output.shouldContain("[Evacuation Failure");
|