24 /*
25 * @test
26 * @summary Dumping -XX:SharedArchiveFile should succeed without extra flag to unlock
27 * @requires vm.cds
28 * @library /test/lib
29 * @modules java.base/jdk.internal.misc
30 * java.management
31 * jdk.jartool/sun.tools.jar
32 * @compile test-classes/Hello.java
33 * @run main SharedArchiveFile
34 */
35
36 import jdk.test.lib.Platform;
37 import jdk.test.lib.cds.CDSTestUtils;
38 import jdk.test.lib.process.OutputAnalyzer;
39 import jdk.test.lib.process.ProcessTools;
40 import java.util.Properties;
41
42 public class SharedArchiveFile {
43 public static void main(String[] args) throws Exception {
44 boolean isProduct = !Platform.isDebugBuild();
45 String appJar = JarBuilder.getOrCreateHelloJar();
46
47 // 1) Dumping -XX:SharedArchiveFile without -XX:+UseAppCDS should
48 // succeed with all binary.
49 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true,
50 "-cp", appJar, "-XX:SharedArchiveFile=./SharedArchiveFile.jsa", "-Xshare:dump");
51 OutputAnalyzer out = CDSTestUtils.executeAndLog(pb, "dump");
52 out.shouldContain("Dumping");
53
54 // 2) Using -XX:SharedArchiveFile with -XX:+UseAppCDS should work
55 // on product binary by default.
56 OutputAnalyzer output3 = TestCommon.dump(appJar, TestCommon.list("Hello"));
57 output3.shouldContain("Dumping");
58 output3 = TestCommon.exec(appJar, "Hello");
59 TestCommon.checkExec(output3, "Hello World");
60
61 // 3) Using -XX:+UseAppCDS should not affect other diagnostic flags,
62 // such as LogEvents
63 OutputAnalyzer output4 = TestCommon.exec(appJar, "-XX:+LogEvents", "Hello");
64 if (isProduct) {
65 output4.shouldContain("Error: VM option 'LogEvents' is diagnostic and must be enabled via -XX:+UnlockDiagnosticVMOptions.");
66 } else {
67 TestCommon.checkExec(output4, "Hello World");
68 }
69
70 // 4) 8066921 - Extra -XX:+UseAppCDS
71 TestCommon.testDump(appJar, TestCommon.list("Hello"), "-XX:+UseAppCDS");
72 OutputAnalyzer output5 = TestCommon.exec(appJar, "-XX:+UseAppCDS", "Hello");
73 TestCommon.checkExec(output5);
74 }
75 }
|
24 /*
25 * @test
26 * @summary Dumping -XX:SharedArchiveFile should succeed without extra flag to unlock
27 * @requires vm.cds
28 * @library /test/lib
29 * @modules java.base/jdk.internal.misc
30 * java.management
31 * jdk.jartool/sun.tools.jar
32 * @compile test-classes/Hello.java
33 * @run main SharedArchiveFile
34 */
35
36 import jdk.test.lib.Platform;
37 import jdk.test.lib.cds.CDSTestUtils;
38 import jdk.test.lib.process.OutputAnalyzer;
39 import jdk.test.lib.process.ProcessTools;
40 import java.util.Properties;
41
42 public class SharedArchiveFile {
43 public static void main(String[] args) throws Exception {
44 String appJar = JarBuilder.getOrCreateHelloJar();
45
46 // Dumping -XX:SharedArchiveFile should succeed with all binary.
47 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true,
48 "-cp", appJar, "-XX:SharedArchiveFile=./SharedArchiveFile.jsa", "-Xshare:dump");
49 OutputAnalyzer out = CDSTestUtils.executeAndLog(pb, "dump");
50 out.shouldContain("Dumping");
51 }
52 }
|