test/gc/arguments/TestDynMaxHeapFreeRatio.java

changeset 6952
e2976043eac3
parent 0
f90c822e73f8
equal deleted inserted replaced
6951:99dbb9cd9521 6952:e2976043eac3
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any 20 * or visit www.oracle.com if you need additional information or have any
21 * questions. 21 * questions.
22 */ 22 */
23 23
24 import static com.oracle.java.testlibrary.Asserts.assertEQ;
25 import static com.oracle.java.testlibrary.Asserts.assertFalse;
26 import static com.oracle.java.testlibrary.Asserts.assertTrue;
27 import com.oracle.java.testlibrary.DynamicVMOption;
28
24 /** 29 /**
25 * @test TestDynMaxHeapFreeRatio 30 * @test TestDynMaxHeapFreeRatio
26 * @bug 8028391 31 * @bug 8028391
27 * @summary Verify that MaxHeapFreeRatio flag is manageable 32 * @summary Verify that MaxHeapFreeRatio flag is manageable
28 * @library /testlibrary 33 * @library /testlibrary
31 * @run main/othervm -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=50 -XX:-UseAdaptiveSizePolicy TestDynMaxHeapFreeRatio 36 * @run main/othervm -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=50 -XX:-UseAdaptiveSizePolicy TestDynMaxHeapFreeRatio
32 * @run main/othervm -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=50 TestDynMaxHeapFreeRatio 37 * @run main/othervm -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=50 TestDynMaxHeapFreeRatio
33 * @run main/othervm -XX:MinHeapFreeRatio=51 -XX:MaxHeapFreeRatio=52 TestDynMaxHeapFreeRatio 38 * @run main/othervm -XX:MinHeapFreeRatio=51 -XX:MaxHeapFreeRatio=52 TestDynMaxHeapFreeRatio
34 * @run main/othervm -XX:MinHeapFreeRatio=75 -XX:MaxHeapFreeRatio=100 TestDynMaxHeapFreeRatio 39 * @run main/othervm -XX:MinHeapFreeRatio=75 -XX:MaxHeapFreeRatio=100 TestDynMaxHeapFreeRatio
35 */ 40 */
36 import com.oracle.java.testlibrary.TestDynamicVMOption; 41 public class TestDynMaxHeapFreeRatio {
37 import com.oracle.java.testlibrary.DynamicVMOptionChecker;
38
39 public class TestDynMaxHeapFreeRatio extends TestDynamicVMOption {
40
41 public static final String MinFreeRatioFlagName = "MinHeapFreeRatio";
42 public static final String MaxFreeRatioFlagName = "MaxHeapFreeRatio";
43
44 public TestDynMaxHeapFreeRatio() {
45 super(MaxFreeRatioFlagName);
46 }
47
48 public void test() {
49
50 int minHeapFreeValue = DynamicVMOptionChecker.getIntValue(MinFreeRatioFlagName);
51 System.out.println(MinFreeRatioFlagName + " = " + minHeapFreeValue);
52
53 testPercentageValues();
54
55 checkInvalidValue(Integer.toString(minHeapFreeValue - 1));
56 checkValidValue(Integer.toString(minHeapFreeValue));
57 checkValidValue("100");
58 }
59 42
60 public static void main(String args[]) throws Exception { 43 public static void main(String args[]) throws Exception {
61 new TestDynMaxHeapFreeRatio().test(); 44
45 // low boundary value
46 int minValue = DynamicVMOption.getInt("MinHeapFreeRatio");
47 System.out.println("MinHeapFreeRatio= " + minValue);
48
49 String badValues[] = {
50 null,
51 "",
52 "not a number",
53 "8.5", "-0.01",
54 Integer.toString(Integer.MIN_VALUE),
55 Integer.toString(Integer.MAX_VALUE),
56 Integer.toString(minValue - 1),
57 "-1024", "-1", "101", "1997"
58 };
59
60 String goodValues[] = {
61 Integer.toString(minValue),
62 Integer.toString(minValue + 1),
63 Integer.toString((minValue + 100) / 2),
64 "99", "100"
65 };
66
67 DynamicVMOption option = new DynamicVMOption("MaxHeapFreeRatio");
68
69 assertTrue(option.isWriteable(), "Option " + option.name
70 + " is expected to be writable");
71
72 for (String v : badValues) {
73 assertFalse(option.isValidValue(v),
74 "'" + v + "' is expected to be illegal for flag " + option.name);
75 }
76 for (String v : goodValues) {
77 option.setValue(v);
78 String newValue = option.getValue();
79 assertEQ(v, newValue);
80 }
62 } 81 }
63
64 } 82 }

mercurial