102
103 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(finalargs.toArray(new String[0]));
104 OutputAnalyzer output = new OutputAnalyzer(pb.start());
105 output.shouldHaveExitValue(0);
106 String stdout = output.getStdout();
107 //System.out.println(stdout);
108 return getFlagValue("MaxNewSize", stdout);
109 }
110
111 private static String getFlagValue(String flag, String where) {
112 Matcher m = Pattern.compile(flag + "\\s+:?=\\s+\\d+").matcher(where);
113 if (!m.find()) {
114 throw new RuntimeException("Could not find value for flag " + flag + " in output string");
115 }
116 String match = m.group();
117 return match.substring(match.lastIndexOf(" ") + 1, match.length());
118 }
119
120 public static void main(String args[]) throws Exception {
121 String gcName = args[0];
122 final int M32 = 32 * 1024 * 1024;
123 final int M64 = 64 * 1024 * 1024;
124 final int M96 = 96 * 1024 * 1024;
125 final int M128 = 128 * 1024 * 1024;
126 checkMaxNewSize(new String[] { gcName, "-Xmx128M" }, M128);
127 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:NewRatio=5" }, M128);
128 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:NewSize=32M" }, M128);
129 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:OldSize=96M" }, M128);
130 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:MaxNewSize=32M" }, M32);
131 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:NewSize=32M", "-XX:MaxNewSize=32M" }, M32);
132 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:NewRatio=6", "-XX:MaxNewSize=32M" }, M32);
133 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-Xms96M" }, M128);
134 checkMaxNewSize(new String[] { gcName, "-Xmx96M", "-Xms96M" }, M96);
135 checkMaxNewSize(new String[] { gcName, "-XX:NewSize=128M", "-XX:MaxNewSize=50M"}, M128);
136 }
137 }
|
102
103 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(finalargs.toArray(new String[0]));
104 OutputAnalyzer output = new OutputAnalyzer(pb.start());
105 output.shouldHaveExitValue(0);
106 String stdout = output.getStdout();
107 //System.out.println(stdout);
108 return getFlagValue("MaxNewSize", stdout);
109 }
110
111 private static String getFlagValue(String flag, String where) {
112 Matcher m = Pattern.compile(flag + "\\s+:?=\\s+\\d+").matcher(where);
113 if (!m.find()) {
114 throw new RuntimeException("Could not find value for flag " + flag + " in output string");
115 }
116 String match = m.group();
117 return match.substring(match.lastIndexOf(" ") + 1, match.length());
118 }
119
120 public static void main(String args[]) throws Exception {
121 String gcName = args[0];
122 final int M = 1024 * 1024;
123 checkMaxNewSize(new String[] { gcName, "-Xmx128M" }, 128*M);
124 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:NewRatio=5" }, 128*M);
125 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:NewSize=32M" }, 128*M);
126 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:OldSize=96M" }, 128*M);
127 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:MaxNewSize=32M" }, 32*M);
128 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:NewSize=32M", "-XX:MaxNewSize=32M" }, 32*M);
129 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:NewRatio=6", "-XX:MaxNewSize=32M" }, 32*M);
130 checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-Xms96M" }, 128*M);
131 checkMaxNewSize(new String[] { gcName, "-Xmx96M", "-Xms96M" }, 96*M);
132 checkMaxNewSize(new String[] { gcName, "-XX:NewSize=128M", "-XX:MaxNewSize=50M"}, 128*M);
133 }
134 }
|