test/gc/TestVerifyDuringStartup.java

Print this page
rev 4488 : 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:

*** 21,45 **** * questions. */ /* @test TestVerifyDuringStartup.java * @key gc ! * @bug 8010463 * @summary Simple test run with -XX:+VerifyDuringStartup -XX:-UseTLAB to verify 8010463 * @library /testlibrary */ import com.oracle.java.testlibrary.OutputAnalyzer; import com.oracle.java.testlibrary.ProcessTools; public class TestVerifyDuringStartup { public static void main(String args[]) throws Exception { ! ProcessBuilder pb = ! ProcessTools.createJavaProcessBuilder(System.getProperty("test.vm.opts"), ! "-XX:-UseTLAB", "-XX:+UnlockDiagnosticVMOptions", ! "-XX:+VerifyDuringStartup", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldContain("[Verifying"); output.shouldHaveExitValue(0); } } --- 21,66 ---- * questions. */ /* @test TestVerifyDuringStartup.java * @key gc ! * @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<String> 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(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); } }