test/runtime/SharedArchiveFile/SharedSymbolTableBucketSize.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2017, 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.

@@ -28,43 +28,37 @@
  * @library /test/lib
  * @modules java.base/jdk.internal.misc
  *          java.management
  */
 
-import jdk.test.lib.process.ProcessTools;
+import jdk.test.lib.cds.CDSTestUtils;
 import jdk.test.lib.process.OutputAnalyzer;
 
 public class SharedSymbolTableBucketSize {
     public static void main(String[] args) throws Exception {
         int bucket_size = 8;
-        ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
-            "-Xshare:dump", "-XX:+PrintSharedSpaces",
-            "-XX:+UnlockDiagnosticVMOptions",
-            "-XX:SharedArchiveFile=./SharedSymbolTableBucketSize.jsa",
-            "-XX:SharedSymbolTableBucketSize=" + Integer.valueOf(bucket_size));
-        OutputAnalyzer output = new OutputAnalyzer(pb.start());
-        output.shouldContain("Loading classes to share");
-        output.shouldHaveExitValue(0);
 
+        OutputAnalyzer output =
+            CDSTestUtils.createArchive("-XX:SharedSymbolTableBucketSize="
+                                       + Integer.valueOf(bucket_size));
+        CDSTestUtils.checkDump(output);
+
+        if (!CDSTestUtils.isUnableToMap(output)) {
         String s = output.firstMatch("Average bucket size     : .*");
         Float f = Float.parseFloat(s.substring(25));
         int size = Math.round(f);
         if (size != bucket_size) {
           throw new Exception("FAILED: incorrect bucket size " + size +
                               ", expect " + bucket_size);
         }
-
+        }
 
         // Invalid SharedSymbolTableBucketSize input
         String input[] = {"-XX:SharedSymbolTableBucketSize=-1",
                           "-XX:SharedSymbolTableBucketSize=2.5"};
         for (int i = 0; i < input.length; i++) {
-          pb = ProcessTools.createJavaProcessBuilder(
-               "-Xshare:dump", "-XX:+PrintSharedSpaces",
-               "-XX:+UnlockDiagnosticVMOptions",
-               "-XX:SharedArchiveFile=./SharedSymbolTableBucketSize.jsa",
-               input[i]);
-          output = new OutputAnalyzer(pb.start());
-          output.shouldContain("Improperly specified VM option");
+            CDSTestUtils.createArchive(input[i])
+                .shouldContain("Improperly specified VM option")
+                .shouldHaveExitValue(1);
       }
   }
 }