tst_qgraphicspixmaptiem: Fix undefined behavior in contains
See the comment in the test for details. Change-Id: Ie3d356e476ba0419d304bccd396fc18a831a30cd Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
This commit is contained in:
parent
9367d966e6
commit
c9b3091be5
@ -156,6 +156,14 @@ void tst_QGraphicsPixmapItem::contains()
|
|||||||
QFETCH(QPointF, point);
|
QFETCH(QPointF, point);
|
||||||
QFETCH(bool, contains);
|
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);
|
SubQGraphicsPixmapItem item(pixmap);
|
||||||
QCOMPARE(item.contains(point), contains);
|
QCOMPARE(item.contains(point), contains);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user