8060479: [TESTBUG] compiler/codecache/CheckSegmentedCodeCache.java test fails with product build
Added check for product build and compute minimum code cache size accordingly. Reviewed-by: kvn, iignatyev
This commit is contained in:
parent
009e923e04
commit
7d0337349b
@ -22,15 +22,20 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import com.oracle.java.testlibrary.*;
|
import com.oracle.java.testlibrary.*;
|
||||||
|
import sun.hotspot.WhiteBox;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @test CheckSegmentedCodeCache
|
* @test CheckSegmentedCodeCache
|
||||||
* @bug 8015774
|
* @bug 8015774
|
||||||
|
* @library /testlibrary /testlibrary/whitebox
|
||||||
* @summary "Checks VM options related to the segmented code cache"
|
* @summary "Checks VM options related to the segmented code cache"
|
||||||
* @library /testlibrary
|
* @build CheckSegmentedCodeCache
|
||||||
* @run main/othervm CheckSegmentedCodeCache
|
* @run main ClassFileInstaller sun.hotspot.WhiteBox
|
||||||
|
* sun.hotspot.WhiteBox$WhiteBoxPermission
|
||||||
|
* @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI CheckSegmentedCodeCache
|
||||||
*/
|
*/
|
||||||
public class CheckSegmentedCodeCache {
|
public class CheckSegmentedCodeCache {
|
||||||
|
private static final WhiteBox WHITE_BOX = WhiteBox.getWhiteBox();
|
||||||
// Code heap names
|
// Code heap names
|
||||||
private static final String NON_METHOD = "CodeHeap 'non-nmethods'";
|
private static final String NON_METHOD = "CodeHeap 'non-nmethods'";
|
||||||
private static final String PROFILED = "CodeHeap 'profiled nmethods'";
|
private static final String PROFILED = "CodeHeap 'profiled nmethods'";
|
||||||
@ -133,8 +138,12 @@ public class CheckSegmentedCodeCache {
|
|||||||
failsWith(pb, "Invalid code heap sizes");
|
failsWith(pb, "Invalid code heap sizes");
|
||||||
|
|
||||||
// Fails if not enough space for VM internal code
|
// Fails if not enough space for VM internal code
|
||||||
|
long minUseSpace = WHITE_BOX.getUintxVMFlag("CodeCacheMinimumUseSpace");
|
||||||
|
long minFreeSpace = WHITE_BOX.getUintxVMFlag("CodeCacheMinimumFreeSpace");
|
||||||
|
// minimum size: (CodeCacheMinimumUseSpace DEBUG_ONLY(* 3)) + CodeCacheMinimumFreeSpace
|
||||||
|
long minSize = (Platform.isDebugBuild() ? 3 : 1) * minUseSpace + minFreeSpace;
|
||||||
pb = ProcessTools.createJavaProcessBuilder("-XX:+SegmentedCodeCache",
|
pb = ProcessTools.createJavaProcessBuilder("-XX:+SegmentedCodeCache",
|
||||||
"-XX:ReservedCodeCacheSize=1700K",
|
"-XX:ReservedCodeCacheSize=" + minSize,
|
||||||
"-XX:InitialCodeCacheSize=100K");
|
"-XX:InitialCodeCacheSize=100K");
|
||||||
failsWith(pb, "Not enough space in non-nmethod code heap to run VM");
|
failsWith(pb, "Not enough space in non-nmethod code heap to run VM");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user