Skip to content

8319555: [TestBug] Utility for creating instruction window for manual tests#2156

Open
andy-goryachev-oracle wants to merge 5 commits into
openjdk:masterfrom
andy-goryachev-oracle:8319555.manual2
Open

8319555: [TestBug] Utility for creating instruction window for manual tests#2156
andy-goryachev-oracle wants to merge 5 commits into
openjdk:masterfrom
andy-goryachev-oracle:8319555.manual2

Conversation

@andy-goryachev-oracle

@andy-goryachev-oracle andy-goryachev-oracle commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

Delivers the following enhancements:

  • wires the manual tests to the main gradle build https://bugs.openjdk.org/browse/JDK-8296441
  • removes the limitation of single source file for manual tests
  • provides the ManualTestWindow base class for manual tests with pass/fail buttons and instruction text area
  • modified EmojiTest to showcase the new ManualTestWindow
  • provides the manual test runner TestRunnerApp which allows for running manual tests in sequence or any order

At the moment, the new code is placed in the tests/manual2 directory (we might decide to move it back to tests/manual once all the tests are migrated and placed in their own packages).

The gradle manualApps builds the classes in the tests/manual2/build/classes dir and generates a jar file containing all the tests, ManualTestWindow, TestRunnerApp, and the related test infrastructure (utilities etc.) in the tests/manual2/dist/ManualTests.jar.

Gradle Build

gradle clean manualApps

ManualTestWindow

This class simplifies writing manual tests. Example:

public class ManualTestExample extends ManualTestWindow {
    public ManualTestExample() {
        super(
            "Manual Test Example",
            """
            Instructions:
            1. you will see a button named "Test"
            2. press the button
            3. verify that the button can be pressed""",
            400, 250
        );
     }

     @Override
     protected Node createContent() {
         return new Button("Test");
     }
}

Screenshot 2025-03-28 at 11 50 16

TestRunnerApp

Screenshot 2026-04-20 at 13 24 41

Features:

  • loads default test plan
  • allows to load a test plan from file

Possible improvements:

  • execute single test within tests/manual2 without writing a test plan
  • generating report

Migrating Manual Tests

Migrating existing tests is simple:

  • the tests must not use the default package
  • TestRunnerApp allows to drop the main() method.
  • FQCN of the test added to the default test plan
  • the test can optionally extend the ManualTestWindow

Questions to Reviewers

  1. should the apps target depend on manualApps so it builds the tests automatically?
  2. what other functionality should be implemented in the ManualTestWindow?
  3. what other functionality should be implemented in the TestRunnerApp?
  4. should we add an ability to launch all the manual tests (or a single one) from gradle, or running the TestRunnerApp with the default test plan is sufficient?


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed (2 reviews required, with at least 1 Reviewer, 1 Author)

Issues

  • JDK-8319555: [TestBug] Utility for creating instruction window for manual tests (Enhancement - P4)
  • JDK-8296441: Build and run manual tests from gradle (Enhancement - P4)

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jfx.git pull/2156/head:pull/2156
$ git checkout pull/2156

Update a local copy of the PR:
$ git checkout pull/2156
$ git pull https://git.openjdk.org/jfx.git pull/2156/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 2156

View PR using the GUI difftool:
$ git pr show -t 2156

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jfx/pull/2156.diff

Using Webrev

Link to Webrev Comment

@bridgekeeper

bridgekeeper Bot commented Apr 20, 2026

Copy link
Copy Markdown

👋 Welcome back angorya! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk

openjdk Bot commented Apr 20, 2026

Copy link
Copy Markdown

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

@openjdk openjdk Bot changed the title 8319555 [TestBug] Utility for creating instruction window for manual tests 8319555: [TestBug] Utility for creating instruction window for manual tests Apr 20, 2026
@andy-goryachev-oracle

Copy link
Copy Markdown
Contributor Author

/issue add JDK-8296441

@openjdk

openjdk Bot commented Apr 20, 2026

Copy link
Copy Markdown

@andy-goryachev-oracle
Adding additional issue to issue list: 8296441: Build and run manual tests from gradle.

@andy-goryachev-oracle andy-goryachev-oracle marked this pull request as ready for review April 20, 2026 21:41
@openjdk openjdk Bot added the rfr Ready for review label Apr 20, 2026
@openjdk

openjdk Bot commented Apr 20, 2026

Copy link
Copy Markdown

The total number of required reviews for this PR has been set to 2 based on the presence of this label: rfr. This can be overridden with the /reviewers command.

@mlbridge

mlbridge Bot commented Apr 20, 2026

Copy link
Copy Markdown

Webrevs

@bridgekeeper

bridgekeeper Bot commented May 19, 2026

Copy link
Copy Markdown

@andy-goryachev-oracle This pull request has been inactive for more than 4 weeks and will be automatically closed if another 4 weeks passes without any activity. To avoid this, simply issue a /touch or /keepalive command to the pull request. Feel free to ask for assistance if you need help with progressing this pull request towards integration!

@andy-goryachev-oracle

Copy link
Copy Markdown
Contributor Author

/keepalive

@openjdk

openjdk Bot commented May 19, 2026

Copy link
Copy Markdown

@andy-goryachev-oracle The pull request is being re-evaluated and the inactivity timeout has been reset.

@bridgekeeper

bridgekeeper Bot commented Jun 16, 2026

Copy link
Copy Markdown

@andy-goryachev-oracle This pull request has been inactive for more than 4 weeks and will be automatically closed if another 4 weeks passes without any activity. To avoid this, simply issue a /touch or /keepalive command to the pull request. Feel free to ask for assistance if you need help with progressing this pull request towards integration!

@andy-goryachev-oracle

Copy link
Copy Markdown
Contributor Author

/keepalive

@openjdk

openjdk Bot commented Jun 16, 2026

Copy link
Copy Markdown

@andy-goryachev-oracle The pull request is being re-evaluated and the inactivity timeout has been reset.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rfr Ready for review

Development

Successfully merging this pull request may close these issues.

1 participant