95 }
96
97 private static void getNewOldSize(String gcflag, long[] values) throws Exception {
98 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(gcflag,
99 "-XX:+PrintFlagsFinal", "-version");
100 OutputAnalyzer output = new OutputAnalyzer(pb.start());
101 output.shouldHaveExitValue(0);
102
103 String stdout = output.getStdout();
104 values[0] = getFlagValue(" NewSize", stdout);
105 values[1] = getFlagValue(" OldSize", stdout);
106 }
107
108 public static void checkGenMaxHeapErgo(String gcflag) throws Exception {
109 TestMaxHeapSizeTools.checkGenMaxHeapSize(gcflag, 3);
110 TestMaxHeapSizeTools.checkGenMaxHeapSize(gcflag, 4);
111 TestMaxHeapSizeTools.checkGenMaxHeapSize(gcflag, 5);
112 }
113
114 private static void checkInvalidMinInitialHeapCombinations(String gcflag) throws Exception {
115 expectError(new String[] { gcflag, "-Xms8M", "-XX:InitialHeapSize=4M", "-version" });
116 }
117
118 private static void checkValidMinInitialHeapCombinations(String gcflag) throws Exception {
119 expectValid(new String[] { gcflag, "-XX:InitialHeapSize=8M", "-Xms4M", "-version" });
120 expectValid(new String[] { gcflag, "-Xms4M", "-XX:InitialHeapSize=8M", "-version" });
121 expectValid(new String[] { gcflag, "-XX:InitialHeapSize=8M", "-Xms8M", "-version" });
122 // the following is not an error as -Xms sets both minimal and initial heap size
123 expectValid(new String[] { gcflag, "-XX:InitialHeapSize=4M", "-Xms8M", "-version" });
124 }
125
126 private static void checkInvalidInitialMaxHeapCombinations(String gcflag) throws Exception {
127 expectError(new String[] { gcflag, "-XX:MaxHeapSize=4M", "-XX:InitialHeapSize=8M", "-version" });
128 expectError(new String[] { gcflag, "-XX:InitialHeapSize=8M", "-XX:MaxHeapSize=4M", "-version" });
129 }
130
131 private static void checkValidInitialMaxHeapCombinations(String gcflag) throws Exception {
132 expectValid(new String[] { gcflag, "-XX:InitialHeapSize=4M", "-XX:MaxHeapSize=8M", "-version" });
133 expectValid(new String[] { gcflag, "-XX:MaxHeapSize=8M", "-XX:InitialHeapSize=4M", "-version" });
134 expectValid(new String[] { gcflag, "-XX:MaxHeapSize=4M", "-XX:InitialHeapSize=4M", "-version" });
135 // a value of "0" for initial heap size means auto-detect
|
95 }
96
97 private static void getNewOldSize(String gcflag, long[] values) throws Exception {
98 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(gcflag,
99 "-XX:+PrintFlagsFinal", "-version");
100 OutputAnalyzer output = new OutputAnalyzer(pb.start());
101 output.shouldHaveExitValue(0);
102
103 String stdout = output.getStdout();
104 values[0] = getFlagValue(" NewSize", stdout);
105 values[1] = getFlagValue(" OldSize", stdout);
106 }
107
108 public static void checkGenMaxHeapErgo(String gcflag) throws Exception {
109 TestMaxHeapSizeTools.checkGenMaxHeapSize(gcflag, 3);
110 TestMaxHeapSizeTools.checkGenMaxHeapSize(gcflag, 4);
111 TestMaxHeapSizeTools.checkGenMaxHeapSize(gcflag, 5);
112 }
113
114 private static void checkInvalidMinInitialHeapCombinations(String gcflag) throws Exception {
115 expectError(new String[] { gcflag, "-Xms64M", "-XX:InitialHeapSize=32M", "-version" });
116 }
117
118 private static void checkValidMinInitialHeapCombinations(String gcflag) throws Exception {
119 expectValid(new String[] { gcflag, "-XX:InitialHeapSize=8M", "-Xms4M", "-version" });
120 expectValid(new String[] { gcflag, "-Xms4M", "-XX:InitialHeapSize=8M", "-version" });
121 expectValid(new String[] { gcflag, "-XX:InitialHeapSize=8M", "-Xms8M", "-version" });
122 // the following is not an error as -Xms sets both minimal and initial heap size
123 expectValid(new String[] { gcflag, "-XX:InitialHeapSize=4M", "-Xms8M", "-version" });
124 }
125
126 private static void checkInvalidInitialMaxHeapCombinations(String gcflag) throws Exception {
127 expectError(new String[] { gcflag, "-XX:MaxHeapSize=4M", "-XX:InitialHeapSize=8M", "-version" });
128 expectError(new String[] { gcflag, "-XX:InitialHeapSize=8M", "-XX:MaxHeapSize=4M", "-version" });
129 }
130
131 private static void checkValidInitialMaxHeapCombinations(String gcflag) throws Exception {
132 expectValid(new String[] { gcflag, "-XX:InitialHeapSize=4M", "-XX:MaxHeapSize=8M", "-version" });
133 expectValid(new String[] { gcflag, "-XX:MaxHeapSize=8M", "-XX:InitialHeapSize=4M", "-version" });
134 expectValid(new String[] { gcflag, "-XX:MaxHeapSize=4M", "-XX:InitialHeapSize=4M", "-version" });
135 // a value of "0" for initial heap size means auto-detect
|