< prev index next >

test/runtime/SharedArchiveFile/PrintSharedArchiveAndExit.java

Print this page
rev 8016 : [mq]: unique-cds

*** 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, 2015, 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.
*** 30,76 **** import com.oracle.java.testlibrary.*; public class PrintSharedArchiveAndExit { public static void main(String[] args) throws Exception { ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( ! "-XX:+UnlockDiagnosticVMOptions", "-XX:SharedArchiveFile=./sample.jsa", "-Xshare:dump"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); try { output.shouldContain("Loading classes to share"); output.shouldHaveExitValue(0); // (1) With a valid archive pb = ProcessTools.createJavaProcessBuilder( ! "-XX:+UnlockDiagnosticVMOptions", "-XX:SharedArchiveFile=./sample.jsa", "-XX:+PrintSharedArchiveAndExit", "-version"); output = new OutputAnalyzer(pb.start()); output.shouldContain("archive is valid"); output.shouldNotContain("java version"); // Should not print JVM version output.shouldHaveExitValue(0); // Should report success in error code. pb = ProcessTools.createJavaProcessBuilder( ! "-XX:+UnlockDiagnosticVMOptions", "-XX:SharedArchiveFile=./sample.jsa", "-XX:+PrintSharedArchiveAndExit"); output = new OutputAnalyzer(pb.start()); output.shouldContain("archive is valid"); output.shouldNotContain("Usage:"); // Should not print JVM help message output.shouldHaveExitValue(0); // Should report success in error code. // (2) With an invalid archive (boot class path has been prepended) pb = ProcessTools.createJavaProcessBuilder( "-Xbootclasspath/p:foo.jar", ! "-XX:+UnlockDiagnosticVMOptions", "-XX:SharedArchiveFile=./sample.jsa", "-XX:+PrintSharedArchiveAndExit", "-version"); output = new OutputAnalyzer(pb.start()); output.shouldContain("archive is invalid"); output.shouldNotContain("java version"); // Should not print JVM version output.shouldHaveExitValue(1); // Should report failure in error code. pb = ProcessTools.createJavaProcessBuilder( "-Xbootclasspath/p:foo.jar", ! "-XX:+UnlockDiagnosticVMOptions", "-XX:SharedArchiveFile=./sample.jsa", "-XX:+PrintSharedArchiveAndExit"); output = new OutputAnalyzer(pb.start()); output.shouldContain("archive is invalid"); output.shouldNotContain("Usage:"); // Should not print JVM help message output.shouldHaveExitValue(1); // Should report failure in error code. --- 30,78 ---- import com.oracle.java.testlibrary.*; public class PrintSharedArchiveAndExit { public static void main(String[] args) throws Exception { + String filename = "./PrintSharedArchiveAndExit.jsa"; + ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( ! "-XX:+UnlockDiagnosticVMOptions", "-XX:SharedArchiveFile=" + filename, "-Xshare:dump"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); try { output.shouldContain("Loading classes to share"); output.shouldHaveExitValue(0); // (1) With a valid archive pb = ProcessTools.createJavaProcessBuilder( ! "-XX:+UnlockDiagnosticVMOptions", "-XX:SharedArchiveFile=" + filename, "-XX:+PrintSharedArchiveAndExit", "-version"); output = new OutputAnalyzer(pb.start()); output.shouldContain("archive is valid"); output.shouldNotContain("java version"); // Should not print JVM version output.shouldHaveExitValue(0); // Should report success in error code. pb = ProcessTools.createJavaProcessBuilder( ! "-XX:+UnlockDiagnosticVMOptions", "-XX:SharedArchiveFile=" + filename, "-XX:+PrintSharedArchiveAndExit"); output = new OutputAnalyzer(pb.start()); output.shouldContain("archive is valid"); output.shouldNotContain("Usage:"); // Should not print JVM help message output.shouldHaveExitValue(0); // Should report success in error code. // (2) With an invalid archive (boot class path has been prepended) pb = ProcessTools.createJavaProcessBuilder( "-Xbootclasspath/p:foo.jar", ! "-XX:+UnlockDiagnosticVMOptions", "-XX:SharedArchiveFile=" + filename, "-XX:+PrintSharedArchiveAndExit", "-version"); output = new OutputAnalyzer(pb.start()); output.shouldContain("archive is invalid"); output.shouldNotContain("java version"); // Should not print JVM version output.shouldHaveExitValue(1); // Should report failure in error code. pb = ProcessTools.createJavaProcessBuilder( "-Xbootclasspath/p:foo.jar", ! "-XX:+UnlockDiagnosticVMOptions", "-XX:SharedArchiveFile=" + filename, "-XX:+PrintSharedArchiveAndExit"); output = new OutputAnalyzer(pb.start()); output.shouldContain("archive is invalid"); output.shouldNotContain("Usage:"); // Should not print JVM help message output.shouldHaveExitValue(1); // Should report failure in error code.
< prev index next >