From c9b3091be5dc7880e615822f3aac758eacd714f8 Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Mon, 21 Oct 2019 08:53:28 +0200 Subject: tst_qgraphicspixmaptiem: Fix undefined behavior in contains See the comment in the test for details. Change-Id: Ie3d356e476ba0419d304bccd396fc18a831a30cd Reviewed-by: Paul Olav Tvete Reviewed-by: Eirik Aavitsland --- .../graphicsview/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'tests/auto/widgets/graphicsview') diff --git a/tests/auto/widgets/graphicsview/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp b/tests/auto/widgets/graphicsview/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp index 78fe448bdb..843a30df16 100644 --- a/tests/auto/widgets/graphicsview/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp @@ -156,6 +156,14 @@ void tst_QGraphicsPixmapItem::contains() QFETCH(QPointF, point); QFETCH(bool, contains); + // At the time of writing, by default pixmaps will have: + // - The same pixel format of the primary screen (which is platform dependent and may contain alpha) + // - Uninitialized pixels, potentially including an alpha channel + // - A ShapeMode of Mask (which mean it will use the alpha channel as a mask for contains()) + // This means that in order to prevent undefined behavior in this test, we either need to set + // the shapeMode to something else, or set the pixels of the pixmap. + pixmap.fill(); // Filling the pixmap to be on the safe side. + SubQGraphicsPixmapItem item(pixmap); QCOMPARE(item.contains(point), contains); } -- cgit v1.2.3