--- a/jdk/test/tools/launcher/TestHelper.java Wed May 02 09:54:57 2012 -0700
+++ b/jdk/test/tools/launcher/TestHelper.java Wed May 02 10:17:29 2012 -0700
@@ -21,6 +21,8 @@
* questions.
*/
+import java.io.StringWriter;
+import java.io.PrintWriter;
import java.util.Set;
import java.io.BufferedReader;
import java.io.File;
@@ -67,7 +69,7 @@
static final boolean isWindows =
System.getProperty("os.name", "unknown").startsWith("Windows");
static final boolean isMacOSX =
- System.getProperty("os.name", "unknown").startsWith("Mac");
+ System.getProperty("os.name", "unknown").contains("OS X");
static final boolean is64Bit =
System.getProperty("sun.arch.data.model").equals("64");
static final boolean is32Bit =
@@ -88,6 +90,7 @@
static final String EXE_FILE_EXT = ".exe";
static final String JLDEBUG_KEY = "_JAVA_LAUNCHER_DEBUG";
static final String EXPECTED_MARKER = "TRACER_MARKER:About to EXEC";
+ static final String TEST_PREFIX = "###TestError###: ";
static int testExitValue = 0;
@@ -386,7 +389,8 @@
* of use methods to check the test results.
*/
static class TestResult {
- StringBuilder status;
+ PrintWriter status;
+ StringWriter sw;
int exitValue;
List<String> testOutput;
Map<String, String> env;
@@ -394,27 +398,33 @@
public TestResult(String str, int rv, List<String> oList,
Map<String, String> env, Throwable t) {
- status = new StringBuilder("Executed command: " + str + "\n");
+ sw = new StringWriter();
+ status = new PrintWriter(sw);
+ status.println("Executed command: " + str + "\n");
exitValue = rv;
testOutput = oList;
this.env = env;
this.t = t;
}
- void appendStatus(String x) {
- status = status.append(" " + x + "\n");
+ void appendError(String x) {
+ status.println(TEST_PREFIX + x);
+ }
+
+ void indentStatus(String x) {
+ status.println(" " + x);
}
void checkNegative() {
if (exitValue == 0) {
- appendStatus("Error: test must not return 0 exit value");
+ appendError("test must not return 0 exit value");
testExitValue++;
}
}
void checkPositive() {
if (exitValue != 0) {
- appendStatus("Error: test did not return 0 exit value");
+ appendError("test did not return 0 exit value");
testExitValue++;
}
}
@@ -425,7 +435,7 @@
boolean isZeroOutput() {
if (!testOutput.isEmpty()) {
- appendStatus("Error: No message from cmd please");
+ appendError("No message from cmd please");
testExitValue++;
return false;
}
@@ -434,7 +444,7 @@
boolean isNotZeroOutput() {
if (testOutput.isEmpty()) {
- appendStatus("Error: Missing message");
+ appendError("Missing message");
testExitValue++;
return false;
}
@@ -443,22 +453,25 @@
@Override
public String toString() {
- status.append("++++Begin Test Info++++\n");
- status.append("++++Test Environment++++\n");
+ status.println("++++Begin Test Info++++");
+ status.println("++++Test Environment++++");
for (String x : env.keySet()) {
- status.append(x).append("=").append(env.get(x)).append("\n");
+ indentStatus(x + "=" + env.get(x));
}
- status.append("++++Test Output++++\n");
+ status.println("++++Test Output++++");
for (String x : testOutput) {
- appendStatus(x);
+ indentStatus(x);
}
- status.append("++++Test Stack Trace++++\n");
- status.append(t.toString());
+ status.println("++++Test Stack Trace++++");
+ status.println(t.toString());
for (StackTraceElement e : t.getStackTrace()) {
- status.append(e.toString());
+ indentStatus(e.toString());
}
- status.append("++++End of Test Info++++\n");
- return status.toString();
+ status.println("++++End of Test Info++++");
+ status.flush();
+ String out = sw.toString();
+ status.close();
+ return out;
}
boolean contains(String str) {
@@ -467,7 +480,7 @@
return true;
}
}
- appendStatus("Error: string <" + str + "> not found");
+ appendError("string <" + str + "> not found");
testExitValue++;
return false;
}
@@ -478,7 +491,7 @@
return true;
}
}
- appendStatus("Error: string <" + stringToMatch + "> not found");
+ appendError("string <" + stringToMatch + "> not found");
testExitValue++;
return false;
}