< 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 >