On Mon, 28 Sep 2026 21:28:04 GMT, Andy Goryachev <[email protected]> wrote:
>> 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 >> - allows for skipping tests on certain platforms >> - 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"); >> } >> } >> >> >>  >> >> ## TestRunnerApp >> >> <img width="890" height="456" alt="Screenshot 2026-04-20 at 13 24 41" >> src="https://github.com/user-attachments/assets/1bd6b694-83cc-43b5-8b09-703f5f3b9d68" >> /> >> >> >> 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 > ... > > Andy Goryachev has updated the pull request incrementally with one additional > commit since the last revision: > > Revert "feature" > > This reverts commit d1aeb8bceccbfef7723d8cb6cb85896898f8e92d. This PR goes way beyond the bug title. It alters the way manual tests are written, added to the repo, and executed. To evaluate it I would really like to see a write-up that covers things like: - Every step of adding a new test - Creating a test plan - Compiling and running a test against multiple versions of JavaFX - Running a test in a debugging environment The current system is simple-minded but it’s easy to work with. I can use tab and auto-complete to create a command line and get a test running in seconds: java @build/run.args tests/manual/text/EmojiTest.java I can tweak the line a bit to run against the master branch or an earlier JavaFX version. I can easily copy the test somewhere to modify it or get it into a debugger. It looks like this PR will complicate all of that. BTW, on my Mac Studio M2 Max it takes 25 seconds to run the manualTest task for the first time because it’s compiling all the shims. Do we need the shims? (And why does it take 25 seconds for the shims in the first place? It only takes 49 seconds to build the entire JavaFX SDK from scratch.) ------------- PR Comment: https://git.openjdk.org/jfx/pull/2156#issuecomment-5894330342
