--- old/test/java/awt/Robot/HiDPIMouseClick/HiDPIRobotMouseClick.java 2017-03-30 21:08:59.000000000 +0300 +++ new/test/java/awt/Robot/HiDPIMouseClick/HiDPIRobotMouseClick.java 2017-03-30 21:08:58.000000000 +0300 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,31 +27,44 @@ import java.awt.event.InputEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import javax.swing.UIManager; +import java.util.List; +import java.util.concurrent.CountDownLatch; /* @test * @bug 8073320 * @summary Windows HiDPI support - * @author Alexander Scherbatiy - * @requires (os.family == "windows") - * @run main/othervm -Dsun.java2d.win.uiScale=2 HiDPIRobotMouseClick + * @run main/othervm HiDPIRobotMouseClick + * @run main/othervm -Dsun.java2d.uiScale=1 HiDPIRobotMouseClick + * @run main/othervm -Dsun.java2d.uiScale=2 HiDPIRobotMouseClick + * @run main/othervm -Dsun.java2d.win.uiScaleX=3 -Dsun.java2d.win.uiScaleY=2 + * HiDPIRobotMouseClick + * @run main/othervm -Dsun.java2d.win.uiScaleX=2 -Dsun.java2d.win.uiScaleY=3 + * HiDPIRobotMouseClick */ public class HiDPIRobotMouseClick { private static volatile int mouseX; private static volatile int mouseY; + private static CountDownLatch go; + private static Robot robot; public static void main(String[] args) throws Exception { - - try { - UIManager.setLookAndFeel( - "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); - } catch (Exception e) { - return; + robot = new Robot(); + robot.setAutoDelay(50); + for (int size : List.of(50, 87, 100, 123, 137, 150)) { + test(size); } + } + + private static void test(int size) throws Exception { + go = new CountDownLatch(1); + mouseX = -1; + mouseY = -1; + robot.mouseMove(100, 100); Frame frame = new Frame(); - frame.setBounds(30, 20, 400, 300); + frame.setSize(size, size + 1); + frame.setLocationRelativeTo(null); frame.setUndecorated(true); frame.addMouseListener(new MouseAdapter() { @@ -60,12 +73,12 @@ public void mouseClicked(MouseEvent e) { mouseX = e.getXOnScreen(); mouseY = e.getYOnScreen(); + go.countDown(); } }); frame.setVisible(true); - Robot robot = new Robot(); robot.waitForIdle(); Thread.sleep(200); @@ -78,9 +91,11 @@ robot.mouseMove(x, y); robot.mousePress(InputEvent.BUTTON1_MASK); robot.mouseRelease(InputEvent.BUTTON1_MASK); - robot.waitForIdle(); - + go.await(); + frame.dispose(); if (x != mouseX || y != mouseY) { + System.err.println("Expected: x = " + x + ", y = " + y); + System.err.println("Actual: x = " + mouseX + ", y = " + mouseY); throw new RuntimeException("Wrong mouse click point!"); } } --- old/test/java/awt/Robot/HiDPIScreenCapture/HiDPIRobotScreenCaptureTest.java 2017-03-30 21:08:59.000000000 +0300 +++ new/test/java/awt/Robot/HiDPIScreenCapture/HiDPIRobotScreenCaptureTest.java 2017-03-30 21:08:59.000000000 +0300 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,15 +30,17 @@ import java.awt.Rectangle; import java.awt.Robot; import java.awt.image.BufferedImage; -import javax.swing.UIManager; /* @test * @bug 8073320 * @summary Windows HiDPI support - * @author Alexander Scherbatiy - * @requires (os.family == "windows") + * @run main/othervm HiDPIRobotScreenCaptureTest + * @run main/othervm -Dsun.java2d.uiScale=1 HiDPIRobotScreenCaptureTest + * @run main/othervm -Dsun.java2d.uiScale=2 HiDPIRobotScreenCaptureTest * @run main/othervm -Dsun.java2d.win.uiScaleX=3 -Dsun.java2d.win.uiScaleY=2 * HiDPIRobotScreenCaptureTest + * @run main/othervm -Dsun.java2d.win.uiScaleX=2 -Dsun.java2d.win.uiScaleY=3 + * HiDPIRobotScreenCaptureTest */ public class HiDPIRobotScreenCaptureTest { @@ -47,15 +49,8 @@ public static void main(String[] args) throws Exception { - try { - UIManager.setLookAndFeel( - "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); - } catch (Exception e) { - return; - } - Frame frame = new Frame(); - frame.setBounds(40, 30, 400, 300); + frame.setBounds(97, 87, 101, 123); frame.setUndecorated(true); Panel panel = new Panel(new BorderLayout()); @@ -112,4 +107,4 @@ throw new RuntimeException("Wrong image color!"); } } -} \ No newline at end of file +}