Fix flakiness in tst_QWidget::saveRestoreGeometry()
Add setWindowFlags(Qt::X11BypassWindowManagerHint) to bypass the creation of the frame. We are checking the geometry of the widget itself, not of his frame in this test. Remove the comments preventing that it can be flaky when debugging. Remove unnecessary QApplication::processEvents(). Remove several unnecessary qWait(). Change-Id: I4a4bcf5cb9522a9a504925c1ae31f0677deae3b1 Pick-to: 6.8 6.7 6.5 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
This commit is contained in:
parent
de40931eba
commit
cf45ae08bc
@ -4317,19 +4317,13 @@ void tst_QWidget::saveRestoreGeometry()
|
||||
|
||||
{
|
||||
QWidget widget;
|
||||
widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
|
||||
widget.move(position);
|
||||
widget.resize(size);
|
||||
widget.showNormal();
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&widget));
|
||||
QApplication::processEvents();
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
* This test function is likely to flake when debugged with Qt Creator.
|
||||
* (29px offset making the following QTRY_VERIFY2 fail)
|
||||
* ---------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
QTRY_VERIFY2(HighDpi::fuzzyCompare(widget.pos(), position, m_fuzz),
|
||||
qPrintable(HighDpi::msgPointMismatch(widget.pos(), position)));
|
||||
QCOMPARE(widget.size(), size);
|
||||
@ -4338,6 +4332,7 @@ void tst_QWidget::saveRestoreGeometry()
|
||||
|
||||
{
|
||||
QWidget widget;
|
||||
widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
|
||||
widget.setWindowTitle(QLatin1String(QTest::currentTestFunction()));
|
||||
|
||||
const QByteArray empty;
|
||||
@ -4357,7 +4352,6 @@ void tst_QWidget::saveRestoreGeometry()
|
||||
QVERIFY(widget.restoreGeometry(savedGeometry));
|
||||
widget.showNormal();
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&widget));
|
||||
QApplication::processEvents();
|
||||
|
||||
QVERIFY2(HighDpi::fuzzyCompare(widget.pos(), position, m_fuzz),
|
||||
qPrintable(HighDpi::msgPointMismatch(widget.pos(), position)));
|
||||
@ -4383,65 +4377,46 @@ void tst_QWidget::saveRestoreGeometry()
|
||||
geom = widget.geometry();
|
||||
widget.setWindowState(widget.windowState() | Qt::WindowFullScreen);
|
||||
QTRY_VERIFY((widget.windowState() & Qt::WindowFullScreen));
|
||||
QTest::qWait(500);
|
||||
QVERIFY(widget.restoreGeometry(savedGeometry));
|
||||
QTest::qWait(120);
|
||||
QTRY_VERIFY(!(widget.windowState() & Qt::WindowFullScreen));
|
||||
QTRY_COMPARE(widget.geometry(), geom);
|
||||
|
||||
//Restore to full screen
|
||||
widget.setWindowState(widget.windowState() | Qt::WindowFullScreen);
|
||||
QTest::qWait(120);
|
||||
QTRY_VERIFY((widget.windowState() & Qt::WindowFullScreen));
|
||||
QTest::qWait(500);
|
||||
savedGeometry = widget.saveGeometry();
|
||||
geom = widget.geometry();
|
||||
widget.setWindowState(widget.windowState() ^ Qt::WindowFullScreen);
|
||||
QTest::qWait(120);
|
||||
QTRY_VERIFY(!(widget.windowState() & Qt::WindowFullScreen));
|
||||
QTest::qWait(400);
|
||||
QVERIFY(widget.restoreGeometry(savedGeometry));
|
||||
QTest::qWait(120);
|
||||
QTRY_VERIFY((widget.windowState() & Qt::WindowFullScreen));
|
||||
QTRY_COMPARE(widget.geometry(), geom);
|
||||
QVERIFY((widget.windowState() & Qt::WindowFullScreen));
|
||||
widget.setWindowState(widget.windowState() ^ Qt::WindowFullScreen);
|
||||
QTest::qWait(120);
|
||||
QTRY_VERIFY(!(widget.windowState() & Qt::WindowFullScreen));
|
||||
QTest::qWait(120);
|
||||
|
||||
//Restore from Maximised
|
||||
widget.move(position);
|
||||
widget.resize(size);
|
||||
QTest::qWait(10);
|
||||
QTRY_COMPARE(widget.size(), size);
|
||||
QTest::qWait(500);
|
||||
savedGeometry = widget.saveGeometry();
|
||||
geom = widget.geometry();
|
||||
widget.setWindowState(widget.windowState() | Qt::WindowMaximized);
|
||||
QTest::qWait(120);
|
||||
QTRY_VERIFY((widget.windowState() & Qt::WindowMaximized));
|
||||
QTRY_VERIFY(widget.geometry() != geom);
|
||||
QTest::qWait(500);
|
||||
QVERIFY(widget.restoreGeometry(savedGeometry));
|
||||
QTest::qWait(120);
|
||||
QTRY_COMPARE(widget.geometry(), geom);
|
||||
|
||||
QVERIFY(!(widget.windowState() & Qt::WindowMaximized));
|
||||
|
||||
//Restore to maximised
|
||||
widget.setWindowState(widget.windowState() | Qt::WindowMaximized);
|
||||
QTest::qWait(120);
|
||||
QTRY_VERIFY((widget.windowState() & Qt::WindowMaximized));
|
||||
QTest::qWait(500);
|
||||
geom = widget.geometry();
|
||||
savedGeometry = widget.saveGeometry();
|
||||
widget.setWindowState(widget.windowState() ^ Qt::WindowMaximized);
|
||||
QTest::qWait(120);
|
||||
QTRY_VERIFY(!(widget.windowState() & Qt::WindowMaximized));
|
||||
QTest::qWait(500);
|
||||
QVERIFY(widget.restoreGeometry(savedGeometry));
|
||||
QTest::qWait(120);
|
||||
QTRY_VERIFY((widget.windowState() & Qt::WindowMaximized));
|
||||
QTRY_COMPARE(widget.geometry(), geom);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user