RFR: 8206430: Use consistent pattern for startup in FX system tests [v3]

Kevin Rushforth kcr at openjdk.org
Wed Nov 16 18:47:57 UTC 2022


On Wed, 16 Nov 2022 17:54:17 GMT, Andy Goryachev <angorya at openjdk.org> wrote:

>> 1. Introduced the following utility methods:
>> - Util.launch
>> - Util.shutdown
>> - Util.waitForLatch
>> 2. Fixed the out-of order calls to Stage.hide() and Platform.exit() in many tests' shutdowns.
>> 3. Replaced local waitForLatch copies with Util.waitForLatch
>
> Andy Goryachev has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8206430: default timeout 15

tests/system/src/test/java/test/renderlock/RenderLockCommon.java line 124:

> 122:     @AfterClass
> 123:     public static void doTeardownOnce() {
> 124:         Util.shutdown();

This change causes the test to fail on Linux due to a latent test bug (specific to this test). The test is skipped on Linux using `assumeTrue` in an `@BeforeClass` method. This causes all test methods to be skipped, but the `@AfterClass` method is still run unconditionally. The `Util.shutdown` method calls `Platform.runLater` which will throw an exception if the FX runtime was never started. This causes JUnit to fail with a "DefaultMultiCauseException".

I recommend either moving the `assumeTrue` to the `@Test` method in the `RenderLock1Test` class (there is only one) or else qualifying the call to `Util.shutdown` with `if (myApp != null)` so we don't call it if the platform wasn't launched.

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

PR: https://git.openjdk.org/jfx/pull/950


More information about the openjfx-dev mailing list