< prev index next >

jdk/test/tools/launcher/TooSmallStackSize.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 33,42 **** --- 33,47 ---- * The primary purpose of this test is to make sure we can run with a 16k stack * size without crashing. Also this test will determine the minimum allowed * stack size for the platform (as provided by the JVM error message when a very * small stack is used), and then verify that the JVM can be launched with that stack * size without a crash or any error messages. + * + * Note: The '-Xss<size>' and '-XX:ThreadStackSize=<k-bytes>' options + * both control Java thread stack size. This repo's version of the test + * exercises the '-Xss' option. The hotspot repo's version of the test + * exercises the '-XX:ThreadStackSize' VM option. */ public class TooSmallStackSize extends TestHelper { /* for debugging. Normally false. */ static final boolean verbose = false;
*** 57,67 **** * the JVM with too small of a stack size. */ static String getMinStackAllowed(TestResult tr) { /* * The JVM output will contain in one of the lines: ! * "The stack size specified is too small, Specify at least 100k" * Although the actual size will vary. We need to extract this size * string from the output and return it. */ String matchStr = "Specify at least "; for (String x : tr.testOutput) { --- 62,72 ---- * the JVM with too small of a stack size. */ static String getMinStackAllowed(TestResult tr) { /* * The JVM output will contain in one of the lines: ! * "The Java thread stack size specified is too small. Specify at least 100k" * Although the actual size will vary. We need to extract this size * string from the output and return it. */ String matchStr = "Specify at least "; for (String x : tr.testOutput) {
*** 71,80 **** --- 76,88 ---- int k_start_idx = x.indexOf("k", size_start_idx); return x.substring(size_start_idx, k_start_idx + 1); // include the "k" } } + System.out.println("Expect='" + matchStr + "'"); + System.out.println("Actual:"); + printTestOutput(tr); System.out.println("FAILED: Could not get the stack size from the output"); throw new RuntimeException("test fails"); } /*
*** 94,108 **** if (tr.isOK()) { System.out.println("PASSED: got no error message with stack size of " + stackSize); min_stack_allowed = stackSize; } else { ! if (tr.contains("The stack size specified is too small")) { System.out.println("PASSED: got expected error message with stack size of " + stackSize); min_stack_allowed = getMinStackAllowed(tr); } else { // Likely a crash System.out.println("FAILED: Did not get expected error message with stack size of " + stackSize); throw new RuntimeException("test fails"); } } --- 102,120 ---- if (tr.isOK()) { System.out.println("PASSED: got no error message with stack size of " + stackSize); min_stack_allowed = stackSize; } else { ! String matchStr = "The Java thread stack size specified is too small"; ! if (tr.contains(matchStr)) { System.out.println("PASSED: got expected error message with stack size of " + stackSize); min_stack_allowed = getMinStackAllowed(tr); } else { // Likely a crash + System.out.println("Expect='" + matchStr + "'"); + System.out.println("Actual:"); + printTestOutput(tr); System.out.println("FAILED: Did not get expected error message with stack size of " + stackSize); throw new RuntimeException("test fails"); } }
*** 121,130 **** --- 133,144 ---- if (tr.isOK()) { System.out.println("PASSED: VM launched with minimum allowed stack size of " + stackSize); } else { // Likely a crash + System.out.println("Test output:"); + printTestOutput(tr); System.out.println("FAILED: VM failed to launch with minimum allowed stack size of " + stackSize); throw new RuntimeException("test fails"); } }
< prev index next >