RFR: 8342098: Write a test to compare the images [v3]

Naveen Narayanan duke at openjdk.org
Mon Oct 21 16:56:24 UTC 2024


On Mon, 21 Oct 2024 13:28:37 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

>> test/jdk/java/awt/Robot/ScreenCaptureRobotTest.java line 70:
>> 
>>> 68:         Graphics g = realImage.createGraphics();
>>> 69:         g.setColor(Color.yellow);
>>> 70:         g.fillRect(0, 0, 200, 100);
>> 
>> You may define `rect_width` and `rect_height` variable with 200 and 100 respectively.
>> These numbers are used more than once and you are trying to avoid magic numbers for better practice.
>
> These are `IMAGE_WIDTH` and `IMAGE_HEIGHT` correspondingly, right?

Using IMAGE_WIDTH and IMAGE_HEIGHT now.

>> test/jdk/java/awt/Robot/ScreenCaptureRobotTest.java line 91:
>> 
>>> 89:         robot = new Robot();
>>> 90:         robot.delay(delay);
>>> 91:         robot.waitForIdle();
>> 
>> I guess `robot.waitForIdle()` should be followed by `robot.delay(delay)`. 
>> I agree with @TejeshR13 that you can get rid of `delay` variable, just used once.
>
>> `robot.waitForIdle()` should be followed by `robot.delay(delay)`.
> 
> Yes.
> 
>> you can get rid of delay variable, just used once.
> 
> I don't mind a constant to control the delay.

Taken `delay` variable out now.

>> test/jdk/java/awt/Robot/ScreenCaptureRobotTest.java line 102:
>> 
>>> 100:             String errorMessage = "FAIL : Captured Image is different from "
>>> 101:                     + "the actual image";
>>> 102:             System.err.println("Test failed");
>> 
>> I think you should save the images if image comparison fails, they can be used for diagnostic purpose.
>> No need to define a `errorMessage` variable, can throw the error message directly.
>> 
>> `System.err.println("Test failed");` look redundant to me.
>
> Absolutely right! Save the images — it'll make your life easier when you need to analyse the test failure.

Saving the images now on failure.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21524#discussion_r1809164557
PR Review Comment: https://git.openjdk.org/jdk/pull/21524#discussion_r1809165834
PR Review Comment: https://git.openjdk.org/jdk/pull/21524#discussion_r1809157138


More information about the client-libs-dev mailing list