> The two tests `ScreenCaptureGtkTest.java` and > `HiDPIRobotScreenCaptureTest.java` under `java/awt/Robot/HiDPIScreenCapture` > started to intermittently fail under Windows and Linux after the [recent > changes](https://github.com/openjdk/jdk/commit/cc7cf81256ed4d74493472017b1c4df20fa2208a) > made exclusively for the Linux `Robot` implementation. > > `HiDPIRobotScreenCaptureTest.java` > Since the Windows failures cannot possibly have their origin in the fix made > - the latter being Linux-only - the test apparently either exposes an > existing bug in the Windows `Robot` or is bumping against a peculiarity of > that platform. The test is reverted back to its original form that didn't > fail. > > `ScreenCaptureGtkTest.java` > The coordinates in the log `(83, 78)` of a failure are higher up than the > test suggests `(83, 97)`. I've seen similar failures on Ubuntu 20.04 when the > coordinates were set to `(0, 0)`. The color then picked matched the color of > the bar drawn at the top of the screen. I believe it's best to place the test > pixels towards the center of the window to avoid desktop elements > interference. > > The other possible reason for intermittent failures are window coordinates. > Suppose that the test is executing with `sun.java2d.uiScale` set to 2. This > effectively means that it can only pick colors of pixels at even coordinates > (in the absolute desktop space). So if the window is placed at, say, `(201, > 201)`, `Robot` can only pick the color at either `(200, 200)` or `(202, > 202)`. Since the test only makes sense if it is pixel-accurate, I removed all > `@run`s with `sun.java2d.uiScale` other than 1. This way window placement > will not cause a failure. > > This was tested on Ubuntu 20.04 and 18.04 with desktop scaling set to 100%, > 200%, and 300%.
Maxim Kartashev has updated the pull request incrementally with one additional commit since the last revision: Reverted HiDPIRobotScreenCaptureTest back to 8280861 with minor changes ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/7613/files - new: https://git.openjdk.java.net/jdk/pull/7613/files/e58cc949..f76fc4ee Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=7613&range=04 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=7613&range=03-04 Stats: 42 lines in 1 file changed: 18 ins; 4 del; 20 mod Patch: https://git.openjdk.java.net/jdk/pull/7613.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/7613/head:pull/7613 PR: https://git.openjdk.java.net/jdk/pull/7613