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);
}
}