34
35 import jdk.test.lib.process.OutputAnalyzer;
36 import jdk.test.lib.process.ProcessTools;
37
38 public class SysDictCrash {
39 public static void main(String[] args) throws Exception {
40 SharedStringsUtils.run(args, SysDictCrash::test);
41 }
42
43 public static void test(String[] args) throws Exception {
44 String vmOptionsPrefix[] = SharedStringsUtils.getChildVMOptionsPrefix();
45
46 // SharedBaseAddress=0 puts the archive at a very high address on solaris,
47 // which provokes the crash.
48 ProcessBuilder dumpPb = ProcessTools.createJavaProcessBuilder(true,
49 TestCommon.concat(vmOptionsPrefix,
50 "-XX:+UseG1GC", "-XX:MaxRAMPercentage=12.5",
51 "-cp", ".",
52 "-XX:SharedBaseAddress=0", "-XX:SharedArchiveFile=./SysDictCrash.jsa",
53 "-Xshare:dump",
54 "-showversion", "-Xlog:cds,cds+hashtables"));
55
56 boolean continueTest = true;
57 OutputAnalyzer output = TestCommon.executeAndLog(dumpPb, "dump");
58 try {
59 TestCommon.checkDump(output);
60 } catch (java.lang.RuntimeException re) {
61 if (!output.getStdout().contains("UseCompressedOops and UseCompressedClassPointers have been disabled due to")) {
62 throw re;
63 } else {
64 System.out.println("Shared archive was not created due to UseCompressedOops and UseCompressedClassPointers have been disabled.");
65 continueTest = false;
66 }
67 }
68
69 if (!continueTest) {
70 return;
71 }
72
73 ProcessBuilder runPb = ProcessTools.createJavaProcessBuilder(true,
74 TestCommon.concat(vmOptionsPrefix,
|
34
35 import jdk.test.lib.process.OutputAnalyzer;
36 import jdk.test.lib.process.ProcessTools;
37
38 public class SysDictCrash {
39 public static void main(String[] args) throws Exception {
40 SharedStringsUtils.run(args, SysDictCrash::test);
41 }
42
43 public static void test(String[] args) throws Exception {
44 String vmOptionsPrefix[] = SharedStringsUtils.getChildVMOptionsPrefix();
45
46 // SharedBaseAddress=0 puts the archive at a very high address on solaris,
47 // which provokes the crash.
48 ProcessBuilder dumpPb = ProcessTools.createJavaProcessBuilder(true,
49 TestCommon.concat(vmOptionsPrefix,
50 "-XX:+UseG1GC", "-XX:MaxRAMPercentage=12.5",
51 "-cp", ".",
52 "-XX:SharedBaseAddress=0", "-XX:SharedArchiveFile=./SysDictCrash.jsa",
53 "-Xshare:dump",
54 "-showversion", "-Xlog:cds,cds+hashtables,gc+heap+coops"));
55
56 boolean continueTest = true;
57 OutputAnalyzer output = TestCommon.executeAndLog(dumpPb, "dump");
58 try {
59 TestCommon.checkDump(output);
60 } catch (java.lang.RuntimeException re) {
61 if (!output.getStdout().contains("UseCompressedOops and UseCompressedClassPointers have been disabled due to")) {
62 throw re;
63 } else {
64 System.out.println("Shared archive was not created due to UseCompressedOops and UseCompressedClassPointers have been disabled.");
65 continueTest = false;
66 }
67 }
68
69 if (!continueTest) {
70 return;
71 }
72
73 ProcessBuilder runPb = ProcessTools.createJavaProcessBuilder(true,
74 TestCommon.concat(vmOptionsPrefix,
|