< prev index next >

test/hotspot/jtreg/runtime/SharedArchiveFile/DumpSharedDictionary.java

Print this page
rev 49875 : [mq]: first.patch


  25  * @test
  26  * @bug 8130072
  27  * @summary Check that Shared Dictionary is printed out with jcmd
  28  * @requires vm.cds
  29  * @library /test/lib
  30  * @modules java.base/jdk.internal.misc
  31  * @run main DumpSharedDictionary
  32  */
  33 
  34 import jdk.test.lib.cds.CDSTestUtils;
  35 import jdk.test.lib.process.ProcessTools;
  36 import jdk.test.lib.process.OutputAnalyzer;
  37 import jdk.test.lib.JDKToolFinder;
  38 
  39 public class DumpSharedDictionary {
  40 
  41     public static void main(String[] args) throws Exception {
  42         if (args.length == 0) {
  43             // Start this process
  44             ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
  45                 "-XX:+UnlockDiagnosticVMOptions",
  46                 "-XX:SharedArchiveFile=./DumpSharedDictionary.jsa",
  47                 "-Xshare:dump");
  48 
  49             OutputAnalyzer out = CDSTestUtils.executeAndLog(pb, "dump");
  50             out.shouldHaveExitValue(0);
  51 
  52             String testjdkPath = System.getProperty("test.jdk");
  53 
  54             pb = ProcessTools.createJavaProcessBuilder(
  55                     "-XX:+UnlockDiagnosticVMOptions",
  56                     "-XX:SharedArchiveFile=./DumpSharedDictionary.jsa",
  57                     "-Dtest.jdk=" + testjdkPath,
  58                     "-Xshare:on", "DumpSharedDictionary", "test");
  59 
  60             out = CDSTestUtils.executeAndLog(pb, "exec");
  61             if (!CDSTestUtils.isUnableToMap(out)) {
  62                 out.shouldHaveExitValue(0);
  63             }
  64         } else {
  65             // Grab my own PID
  66             String pid = Long.toString(ProcessTools.getProcessId());
  67 
  68             ProcessBuilder pb = new ProcessBuilder();
  69             pb.command(new String[] {JDKToolFinder.getJDKTool("jcmd"), pid, "VM.systemdictionary"});
  70             OutputAnalyzer output = CDSTestUtils.executeAndLog(pb, "jcmd-systemdictionary");
  71             try {
  72                 output.shouldContain("Shared Dictionary statistics:");
  73                 output.shouldContain("Number of buckets");
  74                 output.shouldContain("Number of entries");
  75                 output.shouldContain("Maximum bucket size");


  25  * @test
  26  * @bug 8130072
  27  * @summary Check that Shared Dictionary is printed out with jcmd
  28  * @requires vm.cds
  29  * @library /test/lib
  30  * @modules java.base/jdk.internal.misc
  31  * @run main DumpSharedDictionary
  32  */
  33 
  34 import jdk.test.lib.cds.CDSTestUtils;
  35 import jdk.test.lib.process.ProcessTools;
  36 import jdk.test.lib.process.OutputAnalyzer;
  37 import jdk.test.lib.JDKToolFinder;
  38 
  39 public class DumpSharedDictionary {
  40 
  41     public static void main(String[] args) throws Exception {
  42         if (args.length == 0) {
  43             // Start this process
  44             ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(

  45                 "-XX:SharedArchiveFile=./DumpSharedDictionary.jsa",
  46                 "-Xshare:dump");
  47 
  48             OutputAnalyzer out = CDSTestUtils.executeAndLog(pb, "dump");
  49             out.shouldHaveExitValue(0);
  50 
  51             String testjdkPath = System.getProperty("test.jdk");
  52 
  53             pb = ProcessTools.createJavaProcessBuilder(

  54                     "-XX:SharedArchiveFile=./DumpSharedDictionary.jsa",
  55                     "-Dtest.jdk=" + testjdkPath,
  56                     "-Xshare:on", "DumpSharedDictionary", "test");
  57 
  58             out = CDSTestUtils.executeAndLog(pb, "exec");
  59             if (!CDSTestUtils.isUnableToMap(out)) {
  60                 out.shouldHaveExitValue(0);
  61             }
  62         } else {
  63             // Grab my own PID
  64             String pid = Long.toString(ProcessTools.getProcessId());
  65 
  66             ProcessBuilder pb = new ProcessBuilder();
  67             pb.command(new String[] {JDKToolFinder.getJDKTool("jcmd"), pid, "VM.systemdictionary"});
  68             OutputAnalyzer output = CDSTestUtils.executeAndLog(pb, "jcmd-systemdictionary");
  69             try {
  70                 output.shouldContain("Shared Dictionary statistics:");
  71                 output.shouldContain("Number of buckets");
  72                 output.shouldContain("Number of entries");
  73                 output.shouldContain("Maximum bucket size");
< prev index next >