From 6bb0cbc6865911c31f5edee7c24f270d265bd46d Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Sat, 15 Sep 2018 14:35:24 +0200 Subject: tst_QMdiSubWindow: fix flaky setOpaqueResizeAndMove test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit tst_QMdiSubWindow::setOpaqueResizeAndMove checks if a resize of the mdi subwindow works as expected by simulating mouse events. Those events are sent to fast and therefore the operationMap of QMdiSubWindowPrivate is not yet updated which let the test fail. There was already a call to qWait(250) to wait for the 200ms timer but sometimes (esp. in virtual environments) the timer was not triggered after this period. Fix it by checking if resizeTimerId is set back to -1 which means that updateDirtyRegions() was called. Change-Id: I961ba80589d2f725a6858ba70b84fb35750a6964 Reviewed-by: Tony Sarajärvi --- tests/auto/widgets/widgets/qmdisubwindow/qmdisubwindow.pro | 2 +- tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/auto/widgets/widgets/qmdisubwindow/qmdisubwindow.pro b/tests/auto/widgets/widgets/qmdisubwindow/qmdisubwindow.pro index 4299f7711e..e33271428f 100644 --- a/tests/auto/widgets/widgets/qmdisubwindow/qmdisubwindow.pro +++ b/tests/auto/widgets/widgets/qmdisubwindow/qmdisubwindow.pro @@ -1,6 +1,6 @@ CONFIG += testcase TARGET = tst_qmdisubwindow -QT += widgets testlib +QT += widgets widgets-private testlib INCLUDEPATH += . SOURCES += tst_qmdisubwindow.cpp DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII diff --git a/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp b/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp index 4908f1b9f7..8b2f032172 100644 --- a/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp +++ b/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp @@ -30,6 +30,7 @@ #include #include "qmdisubwindow.h" +#include "private/qmdisubwindow_p.h" #include "qmdiarea.h" #include @@ -723,7 +724,9 @@ void tst_QMdiSubWindow::setOpaqueResizeAndMove() resizeSpy.clear(); QCOMPARE(resizeSpy.count(), 0); - QTest::qWait(250); // delayed update of dirty regions + // we need to wait for the resizeTimer to make sure updateDirtyRegions is called + auto priv = static_cast(qt_widget_private(window)); + QTRY_COMPARE(priv->resizeTimerId, -1); // Enter resize mode. int offset = window->style()->pixelMetric(QStyle::PM_MDIFrameWidth) / 2; -- cgit v1.2.3