public static void main(String[] args) throws Exception {
    ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+PrintWarnings=8", "-version");

    OutputAnalyzer output = new OutputAnalyzer(pb.start());
    output.shouldContain("Improperly specified VM option 'PrintWarnings=8'");
    output.shouldHaveExitValue(1);

    pb = ProcessTools.createJavaProcessBuilder("-XX:-PrintWarnings=8", "-version");

    output = new OutputAnalyzer(pb.start());
    output.shouldContain("Improperly specified VM option 'PrintWarnings=8'");
    output.shouldHaveExitValue(1);
  }
Ejemplo n.º 2
0
  private void verifyRTMRetryCount(int retryCount) throws Throwable {
    CompilableTest busyLock = new BusyLock();
    long expectedAborts = retryCount + 1L;

    OutputAnalyzer outputAnalyzer =
        RTMTestBase.executeRTMTest(
            busyLock,
            "-XX:-UseRTMXendForLockBusy",
            "-XX:RTMTotalCountIncrRate=1",
            CommandLineOptionTest.prepareNumericFlag("RTMRetryCount", retryCount),
            "-XX:RTMTotalCountIncrRate=1",
            "-XX:+PrintPreciseRTMLockingStatistics",
            BusyLock.class.getName(),
            Boolean.toString(TestRTMRetryCount.INFLATE_MONITOR),
            Integer.toString(TestRTMRetryCount.LOCKING_TIME));

    outputAnalyzer.shouldHaveExitValue(0);

    List<RTMLockingStatistics> statistics =
        RTMLockingStatistics.fromString(
            busyLock.getMethodWithLockName(), outputAnalyzer.getStdout());

    Asserts.assertEQ(
        statistics.size(),
        1,
        "VM output should contain "
            + "exactly one rtm locking statistics entry for method "
            + busyLock.getMethodWithLockName());

    Asserts.assertEQ(
        statistics.get(0).getTotalAborts(),
        expectedAborts,
        String.format("It is expected to get %d aborts", expectedAborts));
  }
Ejemplo n.º 3
0
 public static void main(String[] args) throws Exception {
   ProcessBuilder pb =
       ProcessTools.createJavaProcessBuilder("-XX:MaxMetaspaceSize=10m", "-Xshare:dump");
   OutputAnalyzer output = new OutputAnalyzer(pb.start());
   output.shouldContain(
       "is not large enough.\nEither don't specify the -XX:MaxMetaspaceSize=<size>\nor increase the size to at least");
   output.shouldHaveExitValue(2);
 }
  public static void main(String args[]) throws Exception {

    ProcessBuilder pb =
        ProcessTools.createJavaProcessBuilder(
            "-showversion",
            "-XX:+UseParallelGC",
            "-XX:+UseAdaptiveGCBoundary",
            "-XX:+PrintCommandLineFlags",
            SystemGCCaller.class.getName());

    OutputAnalyzer output = new OutputAnalyzer(pb.start());

    output.shouldContain("+UseAdaptiveGCBoundary");

    output.shouldNotContain("error");

    output.shouldHaveExitValue(0);
  }
Ejemplo n.º 5
0
  public static void main(String[] args) throws Exception {
    ProcessBuilder pb;
    String filename = "./CDSCompressedKPtrsError.jsa";

    if (Platform.is64bit()) {
      pb =
          ProcessTools.createJavaProcessBuilder(
              "-XX:+UseCompressedOops",
              "-XX:+UseCompressedClassPointers",
              "-XX:+UnlockDiagnosticVMOptions",
              "-XX:SharedArchiveFile=" + filename,
              "-Xshare:dump");
      OutputAnalyzer output = new OutputAnalyzer(pb.start());
      try {
        output.shouldContain("Loading classes to share");
        output.shouldHaveExitValue(0);

        pb =
            ProcessTools.createJavaProcessBuilder(
                "-XX:-UseCompressedClassPointers",
                "-XX:-UseCompressedOops",
                "-XX:+UnlockDiagnosticVMOptions",
                "-XX:SharedArchiveFile=" + filename,
                "-Xshare:on",
                "-version");
        output = new OutputAnalyzer(pb.start());
        output.shouldContain("Unable to use shared archive");
        output.shouldHaveExitValue(0);

        pb =
            ProcessTools.createJavaProcessBuilder(
                "-XX:-UseCompressedClassPointers",
                "-XX:+UseCompressedOops",
                "-XX:+UnlockDiagnosticVMOptions",
                "-XX:SharedArchiveFile=" + filename,
                "-Xshare:on",
                "-version");
        output = new OutputAnalyzer(pb.start());
        output.shouldContain("Unable to use shared archive");
        output.shouldHaveExitValue(0);

        pb =
            ProcessTools.createJavaProcessBuilder(
                "-XX:+UseCompressedClassPointers",
                "-XX:-UseCompressedOops",
                "-XX:+UnlockDiagnosticVMOptions",
                "-XX:SharedArchiveFile=" + filename,
                "-Xshare:on",
                "-version");
        output = new OutputAnalyzer(pb.start());
        output.shouldContain("Unable to use shared archive");
        output.shouldHaveExitValue(0);

      } catch (RuntimeException e) {
        output.shouldContain("Unable to use shared archive");
        output.shouldHaveExitValue(1);
      }

      // Test bad options with -Xshare:dump.
      pb =
          ProcessTools.createJavaProcessBuilder(
              "-XX:-UseCompressedOops",
              "-XX:+UseCompressedClassPointers",
              "-XX:+UnlockDiagnosticVMOptions",
              "-XX:SharedArchiveFile=./CDSCompressedKPtrsErrorBad1.jsa",
              "-Xshare:dump");
      output = new OutputAnalyzer(pb.start());
      output.shouldContain("Cannot dump shared archive");

      pb =
          ProcessTools.createJavaProcessBuilder(
              "-XX:+UseCompressedOops",
              "-XX:-UseCompressedClassPointers",
              "-XX:+UnlockDiagnosticVMOptions",
              "-XX:SharedArchiveFile=./CDSCompressedKPtrsErrorBad2.jsa",
              "-Xshare:dump");
      output = new OutputAnalyzer(pb.start());
      output.shouldContain("Cannot dump shared archive");

      pb =
          ProcessTools.createJavaProcessBuilder(
              "-XX:-UseCompressedOops",
              "-XX:-UseCompressedClassPointers",
              "-XX:+UnlockDiagnosticVMOptions",
              "-XX:SharedArchiveFile=./CDSCompressedKPtrsErrorBad3.jsa",
              "-Xshare:dump");
      output = new OutputAnalyzer(pb.start());
      output.shouldContain("Cannot dump shared archive");
    }
  }