71 }
72
73 public class TestSummarizeRSetStatsTools {
74
75 // the VM is currently run using G1GC, i.e. trying to test G1 functionality.
76 public static boolean testingG1GC() {
77 HotSpotDiagnosticMXBean diagnostic = ManagementFactoryHelper.getDiagnosticMXBean();
78
79 VMOption option = diagnostic.getVMOption("UseG1GC");
80 if (option.getValue().equals("false")) {
81 System.out.println("Skipping this test. It is only a G1 test.");
82 return false;
83 }
84 return true;
85 }
86
87 public static String runTest(String[] additionalArgs, int numGCs) throws Exception {
88 ArrayList<String> finalargs = new ArrayList<String>();
89 String[] defaultArgs = new String[] {
90 "-XX:+UseG1GC",
91 "-XX:+UseCompressedOops",
92 "-Xmn4m",
93 "-Xmx20m",
94 "-XX:InitiatingHeapOccupancyPercent=100", // we don't want the additional GCs due to initial marking
95 "-XX:+PrintGC",
96 "-XX:+UnlockDiagnosticVMOptions",
97 "-XX:G1HeapRegionSize=1M",
98 };
99
100 finalargs.addAll(Arrays.asList(defaultArgs));
101
102 if (additionalArgs != null) {
103 finalargs.addAll(Arrays.asList(additionalArgs));
104 }
105
106 finalargs.add(VerifySummaryOutput.class.getName());
107 finalargs.add(String.valueOf(numGCs));
108
109 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
110 finalargs.toArray(new String[0]));
111 OutputAnalyzer output = new OutputAnalyzer(pb.start());
|
71 }
72
73 public class TestSummarizeRSetStatsTools {
74
75 // the VM is currently run using G1GC, i.e. trying to test G1 functionality.
76 public static boolean testingG1GC() {
77 HotSpotDiagnosticMXBean diagnostic = ManagementFactoryHelper.getDiagnosticMXBean();
78
79 VMOption option = diagnostic.getVMOption("UseG1GC");
80 if (option.getValue().equals("false")) {
81 System.out.println("Skipping this test. It is only a G1 test.");
82 return false;
83 }
84 return true;
85 }
86
87 public static String runTest(String[] additionalArgs, int numGCs) throws Exception {
88 ArrayList<String> finalargs = new ArrayList<String>();
89 String[] defaultArgs = new String[] {
90 "-XX:+UseG1GC",
91 "-Xmn4m",
92 "-Xmx20m",
93 "-XX:InitiatingHeapOccupancyPercent=100", // we don't want the additional GCs due to initial marking
94 "-XX:+PrintGC",
95 "-XX:+UnlockDiagnosticVMOptions",
96 "-XX:G1HeapRegionSize=1M",
97 };
98
99 finalargs.addAll(Arrays.asList(defaultArgs));
100
101 if (additionalArgs != null) {
102 finalargs.addAll(Arrays.asList(additionalArgs));
103 }
104
105 finalargs.add(VerifySummaryOutput.class.getName());
106 finalargs.add(String.valueOf(numGCs));
107
108 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
109 finalargs.toArray(new String[0]));
110 OutputAnalyzer output = new OutputAnalyzer(pb.start());
|