Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8321812

Update GC tests to use execute[Limited]TestJava

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Fixed
    • P4
    • 23
    • 23
    • hotspot
    • gc
    • b05

    Backports

      Description

        A lot of our tests use a multi-step recipe to spawn and wait for a process. Here's an example
        ```
            ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder(
                 "-XX:-UseTLAB",
                 "-XX:+UnlockDiagnosticVMOptions",
                 "-XX:+VerifyDuringStartup",
                 "-Xlog:gc+verify=debug",
                 "-version");
            OutputAnalyzer output = new OutputAnalyzer(pb.start());
            ... do something with output and wait for the process to complete ...
        ```

        These are the steps involved:

        1) Create a `ProcessBuilder`
        2) Call `ProcessBuilder::start`
        3) Create an `OutputAnalyzer`
        4) Perform an operation that finally waits for the process to, at least partially, complete (OutputAnalyzer::getOutput, OutputAnalyzer::shouldHaveExitValue(), and more).

        Almost all our tests could be converted to use a single call to `ProcessTools.executeTestJava` (or `executeLimitedTestJava`), which spawns the process, makes sure that it has fully completed, and then returns a filled-in OutputAnalyzer to the caller. The above example would become:

        ```
            OutputAnalyzer output = ProcessTools.executeTestJava(
                 "-XX:-UseTLAB",
                 "-XX:+UnlockDiagnosticVMOptions",
                 "-XX:+VerifyDuringStartup",
                 "-Xlog:gc+verify=debug",
                 "-version");
        ```

        I propose that we make this change in the GC tests, to make our code simpler and hopefully easier to read.

        Attachments

          Issue Links

            Activity

              People

                stefank Stefan Karlsson
                stefank Stefan Karlsson
                Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: