From 16ab754e49fef50b373e9d30ef889a53c23fa530 Mon Sep 17 00:00:00 2001 From: Alexander Zvegintsev Date: Mon, 21 Nov 2022 13:40:06 +0000 Subject: [PATCH] 8196018: java/awt/Scrollbar/ScrollbarMouseWheelTest/ScrollbarMouseWheelTest.java fails Reviewed-by: psadhukhan, serb, dnguyen --- test/jdk/ProblemList.txt | 1 - .../ScrollbarMouseWheelTest.java | 64 ++++++++----------- 2 files changed, 27 insertions(+), 38 deletions(-) diff --git a/test/jdk/ProblemList.txt b/test/jdk/ProblemList.txt index 3ae3d8c6a242b..7759b06796318 100644 --- a/test/jdk/ProblemList.txt +++ b/test/jdk/ProblemList.txt @@ -190,7 +190,6 @@ java/awt/event/KeyEvent/KeyTyped/CtrlASCII.java 8252713 linux-all java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.java 8194947 generic-all java/awt/Frame/FramesGC/FramesGC.java 8079069 macosx-all -java/awt/Scrollbar/ScrollbarMouseWheelTest/ScrollbarMouseWheelTest.java 8196018 windows-all,linux-all java/awt/TrayIcon/ActionCommand/ActionCommand.java 8150540 windows-all java/awt/TrayIcon/ActionEventMask/ActionEventMask.java 8150540,8295300 windows-all,linux-all java/awt/TrayIcon/ActionEventTest/ActionEventTest.java 8150540,8242801 windows-all,macosx-all diff --git a/test/jdk/java/awt/Scrollbar/ScrollbarMouseWheelTest/ScrollbarMouseWheelTest.java b/test/jdk/java/awt/Scrollbar/ScrollbarMouseWheelTest/ScrollbarMouseWheelTest.java index fff235708032c..dc93edeecbef5 100644 --- a/test/jdk/java/awt/Scrollbar/ScrollbarMouseWheelTest/ScrollbarMouseWheelTest.java +++ b/test/jdk/java/awt/Scrollbar/ScrollbarMouseWheelTest/ScrollbarMouseWheelTest.java @@ -21,8 +21,17 @@ * questions. */ -import java.awt.*; -import java.awt.event.*; +import java.awt.AWTException; +import java.awt.Component; +import java.awt.Frame; +import java.awt.GridLayout; +import java.awt.Panel; +import java.awt.Point; +import java.awt.Robot; +import java.awt.Scrollbar; +import java.awt.Toolkit; +import java.awt.event.MouseWheelEvent; +import java.awt.event.MouseWheelListener; /** * @test @@ -32,31 +41,28 @@ */ public final class ScrollbarMouseWheelTest - implements MouseWheelListener, WindowListener { + implements MouseWheelListener { + + final static boolean isWindows = + Toolkit.getDefaultToolkit().getClass() + .getName().equals("sun.awt.windows.WToolkit"); - final static String tk = Toolkit.getDefaultToolkit().getClass().getName(); final static int REPS = 5; // There is a bug on Windows: 4616935. // Wheel events comes to every component in the hierarchy so we should // check a platform. // There are two scrollbars within one Panel and both accept 5 clicks, so // Panel would accept 5*2 clicks on Windows. - final static int PANEL_REPS = tk.equals("sun.awt.windows.WToolkit")? REPS * 2: REPS; + final static int PANEL_REPS = isWindows ? REPS * 2: REPS; Scrollbar sb1; Scrollbar sb2; Panel pnl; - class Sema { - boolean flag; - boolean getVal() { return flag;} - void setVal(boolean b) { flag = b;} - } - Sema sema = new Sema(); Robot robot; - int sb1upevents, sb2upevents, pnlupevents; - int sb1downevents, sb2downevents, pnldownevents; + volatile int sb1upevents, sb2upevents, pnlupevents; + volatile int sb1downevents, sb2downevents, pnldownevents; public static void main(final String[] args) { new ScrollbarMouseWheelTest().test(); @@ -69,15 +75,13 @@ public void test() { } catch (AWTException e) { System.out.println("Problem creating Robot. FAIL."); throw new RuntimeException("Problem creating Robot. FAIL."); - } - robot.setAutoDelay(500); + robot.setAutoDelay(250); robot.setAutoWaitForIdle(true); // Show test Frame Frame frame = new Frame("ScrollbarMouseWheelTest"); - frame.addWindowListener(this); pnl = new Panel(); pnl.setLayout(new GridLayout(1, 2)); pnl.addMouseWheelListener(this); @@ -92,14 +96,9 @@ public void test() { frame.setVisible(true); frame.toFront(); - // When Frame is active, start testing (handled in windowActivated()) - while (true) { - synchronized (sema) { - if (sema.getVal()) { - break; - } - } - } + robot.waitForIdle(); + robot.delay(1000); + // up on sb1 testComp(sb1, true); // down on sb1 @@ -108,7 +107,11 @@ public void test() { testComp(sb2, true); // down on sb2 testComp(sb2, false); + + robot.delay(500); + frame.dispose(); + System.out.println("Test done."); if (sb1upevents == REPS && sb2upevents == 0 && @@ -166,17 +169,4 @@ public void mouseWheelMoved(MouseWheelEvent mwe) { System.out.println("weird wheel rotation"); } } - - public void windowActivated(WindowEvent we) { - synchronized (sema) { - sema.setVal(true); - } - } - - public void windowClosed(WindowEvent we) {} - public void windowClosing(WindowEvent we) {} - public void windowDeactivated(WindowEvent we) {} - public void windowDeiconified(WindowEvent we) {} - public void windowIconified(WindowEvent we) {} - public void windowOpened(WindowEvent we) {} }// class ScrollbarMouseWheelTest