tests: make exposeEventOnShrink_QTBUG54040 not flakey on xcb
From: https://tronche.com/gui/x/xlib/events/exposure/expose.html
"The circumstances in which the X server generates Expose events
are not as definite as those for other events."
On windows with XCB_GRAVITY_NORTH_WEST flag set we should not get
expose events according to e2665600c0,
but as stated earlier this might not always be true.
Nevertheless, sometimes we get expose event from X server when shrinking
window, but most of the time we don't. Make the test not flakey by
checking that we get at least 1 expose event, instead of exactly 1.
Now running test 500 times in a loop does not fail.
Task-number: QTBUG-63424
Change-Id: I8004e622020cc09e11b7d592faf6d9ee1b9cfee2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
bb10
parent
113de68543
commit
542e11ab2b
|
|
@ -409,13 +409,17 @@ void tst_QWindow::exposeEventOnShrink_QTBUG54040()
|
|||
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&window));
|
||||
|
||||
const int initialExposeCount = window.received(QEvent::Expose);
|
||||
int exposeCount = window.received(QEvent::Expose);
|
||||
window.resize(window.width(), window.height() - 5);
|
||||
QTRY_COMPARE(window.received(QEvent::Expose), initialExposeCount + 1);
|
||||
QTRY_VERIFY(window.received(QEvent::Expose) > exposeCount);
|
||||
|
||||
exposeCount = window.received(QEvent::Expose);
|
||||
window.resize(window.width() - 5, window.height());
|
||||
QTRY_COMPARE(window.received(QEvent::Expose), initialExposeCount + 2);
|
||||
QTRY_VERIFY(window.received(QEvent::Expose) > exposeCount);
|
||||
|
||||
exposeCount = window.received(QEvent::Expose);
|
||||
window.resize(window.width() - 5, window.height() - 5);
|
||||
QTRY_COMPARE(window.received(QEvent::Expose), initialExposeCount + 3);
|
||||
QTRY_VERIFY(window.received(QEvent::Expose) > exposeCount);
|
||||
}
|
||||
|
||||
void tst_QWindow::positioning_data()
|
||||
|
|
|
|||
Loading…
Reference in New Issue