< prev index next >
test/gc/TestSmallHeap.java
Print this page
*** 77,96 ****
verifySmallHeapSize("-XX:+UseG1GC", expectedMaxHeap);
verifySmallHeapSize("-XX:+UseConcMarkSweepGC", expectedMaxHeap);
}
private static void verifySmallHeapSize(String gc, long expectedMaxHeap) throws Exception {
LinkedList<String> vmOptions = new LinkedList<>();
vmOptions.add(gc);
! vmOptions.add("-Xmx2m");
vmOptions.add("-XX:+PrintFlagsFinal");
vmOptions.add(VerifyHeapSize.class.getName());
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(vmOptions.toArray(new String[0]));
OutputAnalyzer analyzer = new OutputAnalyzer(pb.start());
analyzer.shouldHaveExitValue(0);
long maxHeapSize = Long.parseLong(analyzer.firstMatch("MaxHeapSize.+=\\s+(\\d+)",1));
long actualHeapSize = Long.parseLong(analyzer.firstMatch(VerifyHeapSize.actualMsg + "(\\d+)",1));
Asserts.assertEQ(maxHeapSize, expectedMaxHeap);
Asserts.assertLessThanOrEqual(actualHeapSize, maxHeapSize);
}
--- 77,98 ----
verifySmallHeapSize("-XX:+UseG1GC", expectedMaxHeap);
verifySmallHeapSize("-XX:+UseConcMarkSweepGC", expectedMaxHeap);
}
private static void verifySmallHeapSize(String gc, long expectedMaxHeap) throws Exception {
+ long minMaxHeap = 4 * 1024 * 1024;
LinkedList<String> vmOptions = new LinkedList<>();
vmOptions.add(gc);
! vmOptions.add("-Xmx" + minMaxHeap);
vmOptions.add("-XX:+PrintFlagsFinal");
vmOptions.add(VerifyHeapSize.class.getName());
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(vmOptions.toArray(new String[0]));
OutputAnalyzer analyzer = new OutputAnalyzer(pb.start());
analyzer.shouldHaveExitValue(0);
+ expectedMaxHeap = Math.max(expectedMaxHeap, minMaxHeap);
long maxHeapSize = Long.parseLong(analyzer.firstMatch("MaxHeapSize.+=\\s+(\\d+)",1));
long actualHeapSize = Long.parseLong(analyzer.firstMatch(VerifyHeapSize.actualMsg + "(\\d+)",1));
Asserts.assertEQ(maxHeapSize, expectedMaxHeap);
Asserts.assertLessThanOrEqual(actualHeapSize, maxHeapSize);
}
< prev index next >