On Wed, 17 Jun 2020 11:33:27 GMT, Frederic Thevenet <github.com+7450507+ftheve...@openjdk.org> wrote:
>>> [...] I'd like to see some additional system tests that cover all of the >>> cases of X and Y fitting/not-fitting exactly >>> (and if you stick with your current approach, X or Y as the inner loop). >> >> What kind of tests do you have in mind? More specifically do you mean simply >> adding tests that expand on the existing >> `doTestSnapshotScaleNodeDefer`and `doTestSnapshotScaleNodeImm` (which >> basically just prove that taking a snapshot >> returns a non-null image of the expected size)? Or do you think we need to >> include a test that proves the snapshot >> produced by tiling is entirely faithful to the original, pixel-wise? > > I went ahead and wrote a bunch of tests that: > 1. Setup a scene to display an `ImageView` of a selected dimensions chosen to > trigger tiling in different ways when > taking snapshots. 2. Fill up the image with noise. > 3. Take a snapshot and do a pixel-wise comparison with the original image. > > I've added the new tests to the existing `Snapshot2Test.java`. I observed that the added tests are failing on mac machine(Mojave 10.14.6), but they do pass on windows10. Can you please verify ? Timeout and NPE exception from the log, test.javafx.scene.Snapshot2Test > testSnapshot2x2TilesSameWidthImm[0] FAILED java.lang.IllegalArgumentException: Unrecognized image loader: null at javafx.graphics/javafx.scene.image.WritableImage.loadTkImage(WritableImage.java:278) at javafx.graphics/javafx.scene.image.WritableImage$1.loadTkImage(WritableImage.java:53) at javafx.graphics/javafx.scene.Scene.doSnapshot(Scene.java:1342) at javafx.graphics/javafx.scene.Node.doSnapshot(Node.java:2136) at javafx.graphics/javafx.scene.Node.snapshot(Node.java:2214) at test.javafx.scene.Snapshot2Test.lambda$doTestTiledSnapshotImm$12(Snapshot2Test.java:364) test.javafx.scene.Snapshot2Test > testSnapshot2x1TilesSameSizeDefer[0] FAILED junit.framework.AssertionFailedError: Timeout waiting for snapshot callback at test.javafx.scene.SnapshotCommon.runDeferredSnapshotWait(SnapshotCommon.java:157) at test.javafx.scene.SnapshotCommon.runDeferredSnapshotWait(SnapshotCommon.java:183) at test.javafx.scene.Snapshot2Test.doTestTiledSnapshotDefer(Snapshot2Test.java:378) at test.javafx.scene.Snapshot2Test.testSnapshot2x1TilesSameSizeDefer(Snapshot2Test.java:459) I would suggest to fill the image with a single or preferably some pattern of multiple recognizable colors instead of noise. The noise gives a broken feel. It might confuse the verifications of any future fixes in this area. A well defined color would be nice. ------------- PR: https://git.openjdk.java.net/jfx/pull/112