RFR: JDK-8328190 : Convert AWTPanelSmoothWheel.html applet test to main [v6]

Alexey Ivanov aivanov at openjdk.org
Thu Mar 21 14:50:25 UTC 2024


On Thu, 21 Mar 2024 01:13:50 GMT, Harshitha Onkar <honkar at openjdk.org> wrote:

>> This test is converted to main using PassFailJFrame. It verifies wheel rotation value for high-res mouse on windows.
>> 
>> The test requires the updated PassFailJFrame's logArea() feature added in this PR https://github.com/openjdk/jdk/pull/18319
>
> Harshitha Onkar has updated the pull request incrementally with one additional commit since the last revision:
> 
>   added preciseWheelRotation logic & updated test

Changes requested by aivanov (Reviewer).

test/jdk/java/awt/event/MouseEvent/AWTPanelSmoothWheel.java line 58:

> 56:             When preciseWheelRotation adds up to 1,wheelRotation becomes 1. <br>
> 57:             You should see a few events where preciseWheelRotation < 1 & wheelRotation = 0
> 58:             followed by a event where preciseWheelRotation = 1 & wheelRotation = 1.<br> <br>

Suggestion:

            <b>preciseWheelRotation < 1.</b> <br>
            When preciseWheelRotation adds up to 1, wheelRotation becomes 1. <br>
            You should see a few events where preciseWheelRotation < 1 & wheelRotation = 0
            followed by a event where preciseWheelRotation = 1 & wheelRotation = 1.<br> <br>

test/jdk/java/awt/event/MouseEvent/AWTPanelSmoothWheel.java line 64:

> 62: 
> 63:             <hr>
> 64:             PS: If you don't see events with preciseWheelRotation < 1,

Suggestion:

            PS: If you don't see events with preciseWheelRotation < 1,

test/jdk/java/awt/event/MouseEvent/AWTPanelSmoothWheel.java line 91:

> 89:         panel.addMouseWheelListener(e -> {
> 90:             if (e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) {
> 91:                 PassFailJFrame.log("WheelEvent#"+ ++wheelEventCount

Suggestion:

                PassFailJFrame.log("WheelEvent#" + (++wheelEventCount)

Use parentheses to avoid confusion.

test/jdk/java/awt/event/MouseEvent/AWTPanelSmoothWheel.java line 101:

> 99:                     PassFailJFrame.log("WARNING !!! You might not be using a high-res mouse.");
> 100:                 }
> 101:             }

This logging style is easier to parse, thanks.

You have nearly all the data to make the test semi-automatic. What's missing is `wheelRotationCount`.

[This diff](https://github.com/aivanov-jdk/jdk/commit/04c80c519d1c116663ab10a177bff1c4b6924091) implements this feature. For convenience, I'll paste the diff inline too:

diff --git a/test/jdk/java/awt/event/MouseEvent/AWTPanelSmoothWheel.java b/test/jdk/java/awt/event/MouseEvent/AWTPanelSmoothWheel.java
index 1097d1dcb04..f3dd8294e8b 100644
--- a/test/jdk/java/awt/event/MouseEvent/AWTPanelSmoothWheel.java
+++ b/test/jdk/java/awt/event/MouseEvent/AWTPanelSmoothWheel.java
@@ -39,7 +39,9 @@

 public class AWTPanelSmoothWheel {
     private static int wheelEventCount = 0;
+    private static int wheelRotationCount = 0;
     private static int hiResWheelCount = 0;
+
     private static final String INSTRUCTIONS = """
             <html>
             <body>
@@ -92,12 +94,21 @@ private static Frame createUI() {
                         + " --- Wheel Rotation: " + e.getWheelRotation()
                         + " --- Precise Wheel Rotation: "
                         + String.format("%.2f", e.getPreciseWheelRotation()));
+                if (e.getWheelRotation() >= 1) {
+                    wheelRotationCount += e.getWheelRotation();
+                }
                 if (e.getPreciseWheelRotation() < 1) {
                     hiResWheelCount++;
                 }
                 if (wheelEventCount >= 5 && hiResWheelCount == 0) {
                     PassFailJFrame.log("WARNING !!! You might not be using a high-res mouse.");
                 }
+                if (wheelRotationCount > 5
+                    && (hiResWheelCount / 2 >= wheelRotationCount)) {
+                    PassFailJFrame.log("The test passes: hiResWheelCount = " + hiResWheelCount
+                                       + " wheelRotationCount = " + wheelRotationCount);
+                    PassFailJFrame.forcePass();
+                }
             }
         });
         frame.setSize (400, 200);

test/jdk/java/awt/event/MouseEvent/AWTPanelSmoothWheel.java line 103:

> 101:             }
> 102:         });
> 103:         frame.setSize (400, 200);

Suggestion:

        frame.setSize(400, 200);

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

PR Review: https://git.openjdk.org/jdk/pull/18312#pullrequestreview-1952352489
PR Review Comment: https://git.openjdk.org/jdk/pull/18312#discussion_r1533996638
PR Review Comment: https://git.openjdk.org/jdk/pull/18312#discussion_r1534001700
PR Review Comment: https://git.openjdk.org/jdk/pull/18312#discussion_r1534003172
PR Review Comment: https://git.openjdk.org/jdk/pull/18312#discussion_r1534065861
PR Review Comment: https://git.openjdk.org/jdk/pull/18312#discussion_r1534004288


More information about the client-libs-dev mailing list