< prev index next >

test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SysDictCrash.java

Print this page




  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,
< prev index next >