RFR: 8340007: Refactor KeyEvent/FunctionKeyTest.java
Alexey Ivanov
aivanov at openjdk.org
Mon Sep 16 10:10:05 UTC 2024
On Mon, 16 Sep 2024 09:55:19 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:
> This changeset refactors `java/awt/event/KeyEvent/FunctionKeyTest.java`.
>
> Key changes:
>
> - Use `CyclicBarrier` to verify whether a key is pressed and released;
> - Use `CountDownLatch` for frame activation;
> - Ensure thread-safety for keeping thrown exceptions.
>
> Other changes:
>
> - Made `FunctionKeyTester` a nested class inside `FunctionKeyTest`;
> - Used constants for the key events rather than magic numbers.
>
> I ran the updated test a few times with `JTREG=REPEAT_COUNT=20`, the test has passed.
>
> The updated test executes somewhat quicker than the old one.
>
> @azvegint, you may want to take a look.
test/jdk/java/awt/event/KeyEvent/FunctionKeyTest.java line 70:
> 68: public static void main(String[] args) throws Exception {
> 69: robot = new Robot();
> 70: robot.setAutoWaitForIdle(true);
This makes the updated test run slower because the barriers block EDT for a short while until the two threads — EDT and main thread — arrive to the same point.
`robot.waitForIdle` blocks the main thread from arriving to the barrier and *releasing EDT*.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21013#discussion_r1760867438
More information about the client-libs-dev
mailing list