This PR fixes a latent test bug in test bug in `SwingNodePlatformExitCrashTest` 
by setting a flag to skip shutdown rather than relying on a quirk of JUnit 
5.8.1.

I discovered this while testing PR #1662 which updates JUnit to 5.11.3.


$ gradle sdk shims
$ gradle -PTEST_ONLY=true -PFULL_TEST=true -PUSE_ROBOT=true :systemTests:test 
--tests SwingNodePlatformExitCrashTest
...
SwingNodePlatformExitCrashTest > executionError FAILED
    org.opentest4j.AssertionFailedError: Exceeded timeout limit of 10000 msec
        at app//test.util.Util.runAndWait(Util.java:168)
        at app//test.util.Util.runAndWait(Util.java:139)
        at app//test.util.Util.shutdown(Util.java:316)
        at 
app//test.robot.javafx.embed.swing.SwingNodeBase.teardownOnce(SwingNodeBase.java:81)
        ...


The abstract `SwingNodeBase` base class calls `Util::shutdown` from its static 
`tearDownOnce` method, annotated with `@AfterAll`. The 
`SwingNodePlatformExitCrashTest` shuts down the FX toolkit as part of the test 
so must not call shutdown a second time. The current test logic attempts to 
"override" the static method in the base class with an @AfterAll annotation on 
a static method of the same name in the subclass. This accidentally works in 
JUnit 5.8 by hiding the method in the parent class, but no longer does in JUnit 
5.11.

The right fix is for the subclass to set a flag such that the superclass will 
skip the call to `Util::shutdown`.

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

Commit messages:
 - 8346222: SwingNodePlatformExitCrashTest fails with JUnit 5.11.3

Changes: https://git.openjdk.org/jfx/pull/1664/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1664&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8346222
  Stats: 11 lines in 2 files changed: 4 ins; 1 del; 6 mod
  Patch: https://git.openjdk.org/jfx/pull/1664.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1664/head:pull/1664

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

Reply via email to