On Fri, 25 Sep 2026 22:32:32 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");
>>      }
>> }
>> 
>> 
>> ![Screenshot 2025-03-28 at 11 50 
>> 16](https://github.com/user-attachments/assets/b44a7eb1-d98f-44a5-b13e-612b31c94c60)
>> 
>> ## 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 refreshed the contents of this pull request, and previous 
> commits have been removed. Incremental views are not available.

The runner fails precisely because the new subproject uses Gradle's Java 
toolchain feature. It requests JDK 25, but the runners don't have that; they 
only have JDK 26. `JAVA_TARGET_VERSION` is 25, and it is deliberately different 
from the JDK version. The toolchain specification should be removed, and the 
subproject should be run like all of the other projects.

I also don't think that this adds technical debt. It's quite the opposite: 
bifurcating the build toolchain adds nothing of value. If we replace the legacy 
toolchain selection, it should be done wholesale for all projects at the same 
time.

Alternatively, set it to 26 instead of 25 in the new project.

-------------

PR Comment: https://git.openjdk.org/jfx/pull/2156#issuecomment-5840870243

Reply via email to