< 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 >