# HG changeset patch # User johnc # Date 1366999077 25200 # Node ID 3edf23423bb2a54975075f7822ef3f919e0efbce # Parent 2f50bc36947007c4cbd6cb25af4666a9de947d50 8011898: gc/TestVerifyBeforeGCDuringStartup.java: java.lang.RuntimeException: '[Verifying' missing from stdout/stderr: [Error: Could not find or load main class] Summary: System.getProperty("test.java.opts") can return NULL, which gets converted to to the empty string, and the child java command then interprets that as the name of the main class. Reviewed-by: jmasa, brutisso diff -r 2f50bc369470 -r 3edf23423bb2 test/gc/TestVerifyDuringStartup.java --- a/test/gc/TestVerifyDuringStartup.java Fri Apr 26 10:40:36 2013 +0200 +++ b/test/gc/TestVerifyDuringStartup.java Fri Apr 26 10:57:57 2013 -0700 @@ -23,22 +23,43 @@ /* @test TestVerifyDuringStartup.java * @key gc - * @bug 8010463 + * @bug 8010463 8011343 8011898 * @summary Simple test run with -XX:+VerifyDuringStartup -XX:-UseTLAB to verify 8010463 * @library /testlibrary */ +import com.oracle.java.testlibrary.JDKToolFinder; import com.oracle.java.testlibrary.OutputAnalyzer; import com.oracle.java.testlibrary.ProcessTools; +import java.util.ArrayList; +import java.util.Collections; public class TestVerifyDuringStartup { public static void main(String args[]) throws Exception { + ArrayList vmOpts = new ArrayList(); + + String testVmOptsStr = System.getProperty("test.java.opts"); + if (!testVmOptsStr.isEmpty()) { + String[] testVmOpts = testVmOptsStr.split(" "); + Collections.addAll(vmOpts, testVmOpts); + } + Collections.addAll(vmOpts, new String[] {"-XX:-UseTLAB", + "-XX:+UnlockDiagnosticVMOptions", + "-XX:+VerifyDuringStartup", + "-version"}); + + System.out.print("Testing:\n" + JDKToolFinder.getJDKTool("java")); + for (int i = 0; i < vmOpts.size(); i += 1) { + System.out.print(" " + vmOpts.get(i)); + } + System.out.println(); + ProcessBuilder pb = - ProcessTools.createJavaProcessBuilder(System.getProperty("test.vm.opts"), - "-XX:-UseTLAB", - "-XX:+UnlockDiagnosticVMOptions", - "-XX:+VerifyDuringStartup", "-version"); + ProcessTools.createJavaProcessBuilder(vmOpts.toArray(new String[vmOpts.size()])); OutputAnalyzer output = new OutputAnalyzer(pb.start()); + + System.out.println("Output:\n" + output.getOutput()); + output.shouldContain("[Verifying"); output.shouldHaveExitValue(0); }