8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
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
21 * questions.
22 */
23
24 /*
25 * @test Test2GbHeap
26 * @bug 8031686
27 * @summary Regression test to ensure we can start G1 with 2gb heap.
28 * @key gc
29 * @key regression
30 * @library /testlibrary
31 * @modules java.base/sun.misc
32 * java.management
33 */
34
35 import java.util.ArrayList;
36
37 import jdk.test.lib.OutputAnalyzer;
38 import jdk.test.lib.ProcessTools;
39
40 public class Test2GbHeap {
41 public static void main(String[] args) throws Exception {
42 ArrayList<String> testArguments = new ArrayList<String>();
43
44 testArguments.add("-XX:+UseG1GC");
45 testArguments.add("-Xmx2g");
46 testArguments.add("-version");
47
48 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(testArguments.toArray(new String[0]));
49
50 OutputAnalyzer output = new OutputAnalyzer(pb.start());
51
52 // Avoid failing test for setups not supported.
53 if (output.getOutput().contains("Could not reserve enough space for 2097152KB object heap")) {
54 // Will fail on machines with too little memory (and Windows 32-bit VM), ignore such failures.
55 output.shouldHaveExitValue(1);
56 } else if (output.getOutput().contains("G1 GC is disabled in this release")) {
57 // G1 is not supported on embedded, ignore such failures.
58 output.shouldHaveExitValue(1);
59 } else {
60 // Normally everything should be fine.
61 output.shouldHaveExitValue(0);
62 }
63 }
64 }
|
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
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
21 * questions.
22 */
23
24 /*
25 * @test Test2GbHeap
26 * @bug 8031686
27 * @summary Regression test to ensure we can start G1 with 2gb heap.
28 * Skip test on 32 bit Windows: it typically does not support the many and large virtual memory reservations needed.
29 * @requires (vm.gc == "G1" | vm.gc == "null")
30 * @requires !((sun.arch.data.model == "32") & (os.family == "windows"))
31 * @key gc
32 * @key regression
33 * @library /testlibrary
34 * @modules java.base/sun.misc
35 * java.management
36 */
37
38 import java.util.ArrayList;
39
40 import jdk.test.lib.OutputAnalyzer;
41 import jdk.test.lib.ProcessTools;
42
43 public class Test2GbHeap {
44 public static void main(String[] args) throws Exception {
45 ArrayList<String> testArguments = new ArrayList<String>();
46
47 testArguments.add("-XX:+UseG1GC");
48 testArguments.add("-Xmx2g");
49 testArguments.add("-version");
50
51 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(testArguments.toArray(new String[0]));
52
53 OutputAnalyzer output = new OutputAnalyzer(pb.start());
54 output.shouldHaveExitValue(0);
55 }
56 }
|