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.7 6.5 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit cf45ae08bc90b5dbbd20a7e7842856805205bca4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
79390471e8
commit
8a874d5b31
@ -4336,19 +4336,13 @@ void tst_QWidget::saveRestoreGeometry()
|
|||||||
|
|
||||||
{
|
{
|
||||||
QWidget widget;
|
QWidget widget;
|
||||||
|
widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
|
||||||
widget.move(position);
|
widget.move(position);
|
||||||
widget.resize(size);
|
widget.resize(size);
|
||||||
widget.showNormal();
|
widget.showNormal();
|
||||||
QVERIFY(QTest::qWaitForWindowExposed(&widget));
|
QVERIFY(QTest::qWaitForWindowExposed(&widget));
|
||||||
QApplication::processEvents();
|
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),
|
QTRY_VERIFY2(HighDpi::fuzzyCompare(widget.pos(), position, m_fuzz),
|
||||||
qPrintable(HighDpi::msgPointMismatch(widget.pos(), position)));
|
qPrintable(HighDpi::msgPointMismatch(widget.pos(), position)));
|
||||||
QCOMPARE(widget.size(), size);
|
QCOMPARE(widget.size(), size);
|
||||||
@ -4357,6 +4351,7 @@ void tst_QWidget::saveRestoreGeometry()
|
|||||||
|
|
||||||
{
|
{
|
||||||
QWidget widget;
|
QWidget widget;
|
||||||
|
widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
|
||||||
widget.setWindowTitle(QLatin1String(QTest::currentTestFunction()));
|
widget.setWindowTitle(QLatin1String(QTest::currentTestFunction()));
|
||||||
|
|
||||||
const QByteArray empty;
|
const QByteArray empty;
|
||||||
@ -4376,7 +4371,6 @@ void tst_QWidget::saveRestoreGeometry()
|
|||||||
QVERIFY(widget.restoreGeometry(savedGeometry));
|
QVERIFY(widget.restoreGeometry(savedGeometry));
|
||||||
widget.showNormal();
|
widget.showNormal();
|
||||||
QVERIFY(QTest::qWaitForWindowExposed(&widget));
|
QVERIFY(QTest::qWaitForWindowExposed(&widget));
|
||||||
QApplication::processEvents();
|
|
||||||
|
|
||||||
QVERIFY2(HighDpi::fuzzyCompare(widget.pos(), position, m_fuzz),
|
QVERIFY2(HighDpi::fuzzyCompare(widget.pos(), position, m_fuzz),
|
||||||
qPrintable(HighDpi::msgPointMismatch(widget.pos(), position)));
|
qPrintable(HighDpi::msgPointMismatch(widget.pos(), position)));
|
||||||
@ -4402,65 +4396,46 @@ void tst_QWidget::saveRestoreGeometry()
|
|||||||
geom = widget.geometry();
|
geom = widget.geometry();
|
||||||
widget.setWindowState(widget.windowState() | Qt::WindowFullScreen);
|
widget.setWindowState(widget.windowState() | Qt::WindowFullScreen);
|
||||||
QTRY_VERIFY((widget.windowState() & Qt::WindowFullScreen));
|
QTRY_VERIFY((widget.windowState() & Qt::WindowFullScreen));
|
||||||
QTest::qWait(500);
|
|
||||||
QVERIFY(widget.restoreGeometry(savedGeometry));
|
QVERIFY(widget.restoreGeometry(savedGeometry));
|
||||||
QTest::qWait(120);
|
|
||||||
QTRY_VERIFY(!(widget.windowState() & Qt::WindowFullScreen));
|
QTRY_VERIFY(!(widget.windowState() & Qt::WindowFullScreen));
|
||||||
QTRY_COMPARE(widget.geometry(), geom);
|
QTRY_COMPARE(widget.geometry(), geom);
|
||||||
|
|
||||||
//Restore to full screen
|
//Restore to full screen
|
||||||
widget.setWindowState(widget.windowState() | Qt::WindowFullScreen);
|
widget.setWindowState(widget.windowState() | Qt::WindowFullScreen);
|
||||||
QTest::qWait(120);
|
|
||||||
QTRY_VERIFY((widget.windowState() & Qt::WindowFullScreen));
|
QTRY_VERIFY((widget.windowState() & Qt::WindowFullScreen));
|
||||||
QTest::qWait(500);
|
|
||||||
savedGeometry = widget.saveGeometry();
|
savedGeometry = widget.saveGeometry();
|
||||||
geom = widget.geometry();
|
geom = widget.geometry();
|
||||||
widget.setWindowState(widget.windowState() ^ Qt::WindowFullScreen);
|
widget.setWindowState(widget.windowState() ^ Qt::WindowFullScreen);
|
||||||
QTest::qWait(120);
|
|
||||||
QTRY_VERIFY(!(widget.windowState() & Qt::WindowFullScreen));
|
QTRY_VERIFY(!(widget.windowState() & Qt::WindowFullScreen));
|
||||||
QTest::qWait(400);
|
|
||||||
QVERIFY(widget.restoreGeometry(savedGeometry));
|
QVERIFY(widget.restoreGeometry(savedGeometry));
|
||||||
QTest::qWait(120);
|
|
||||||
QTRY_VERIFY((widget.windowState() & Qt::WindowFullScreen));
|
QTRY_VERIFY((widget.windowState() & Qt::WindowFullScreen));
|
||||||
QTRY_COMPARE(widget.geometry(), geom);
|
QTRY_COMPARE(widget.geometry(), geom);
|
||||||
QVERIFY((widget.windowState() & Qt::WindowFullScreen));
|
QVERIFY((widget.windowState() & Qt::WindowFullScreen));
|
||||||
widget.setWindowState(widget.windowState() ^ Qt::WindowFullScreen);
|
widget.setWindowState(widget.windowState() ^ Qt::WindowFullScreen);
|
||||||
QTest::qWait(120);
|
|
||||||
QTRY_VERIFY(!(widget.windowState() & Qt::WindowFullScreen));
|
QTRY_VERIFY(!(widget.windowState() & Qt::WindowFullScreen));
|
||||||
QTest::qWait(120);
|
|
||||||
|
|
||||||
//Restore from Maximised
|
//Restore from Maximised
|
||||||
widget.move(position);
|
widget.move(position);
|
||||||
widget.resize(size);
|
widget.resize(size);
|
||||||
QTest::qWait(10);
|
|
||||||
QTRY_COMPARE(widget.size(), size);
|
QTRY_COMPARE(widget.size(), size);
|
||||||
QTest::qWait(500);
|
|
||||||
savedGeometry = widget.saveGeometry();
|
savedGeometry = widget.saveGeometry();
|
||||||
geom = widget.geometry();
|
geom = widget.geometry();
|
||||||
widget.setWindowState(widget.windowState() | Qt::WindowMaximized);
|
widget.setWindowState(widget.windowState() | Qt::WindowMaximized);
|
||||||
QTest::qWait(120);
|
|
||||||
QTRY_VERIFY((widget.windowState() & Qt::WindowMaximized));
|
QTRY_VERIFY((widget.windowState() & Qt::WindowMaximized));
|
||||||
QTRY_VERIFY(widget.geometry() != geom);
|
QTRY_VERIFY(widget.geometry() != geom);
|
||||||
QTest::qWait(500);
|
|
||||||
QVERIFY(widget.restoreGeometry(savedGeometry));
|
QVERIFY(widget.restoreGeometry(savedGeometry));
|
||||||
QTest::qWait(120);
|
|
||||||
QTRY_COMPARE(widget.geometry(), geom);
|
QTRY_COMPARE(widget.geometry(), geom);
|
||||||
|
|
||||||
QVERIFY(!(widget.windowState() & Qt::WindowMaximized));
|
QVERIFY(!(widget.windowState() & Qt::WindowMaximized));
|
||||||
|
|
||||||
//Restore to maximised
|
//Restore to maximised
|
||||||
widget.setWindowState(widget.windowState() | Qt::WindowMaximized);
|
widget.setWindowState(widget.windowState() | Qt::WindowMaximized);
|
||||||
QTest::qWait(120);
|
|
||||||
QTRY_VERIFY((widget.windowState() & Qt::WindowMaximized));
|
QTRY_VERIFY((widget.windowState() & Qt::WindowMaximized));
|
||||||
QTest::qWait(500);
|
|
||||||
geom = widget.geometry();
|
geom = widget.geometry();
|
||||||
savedGeometry = widget.saveGeometry();
|
savedGeometry = widget.saveGeometry();
|
||||||
widget.setWindowState(widget.windowState() ^ Qt::WindowMaximized);
|
widget.setWindowState(widget.windowState() ^ Qt::WindowMaximized);
|
||||||
QTest::qWait(120);
|
|
||||||
QTRY_VERIFY(!(widget.windowState() & Qt::WindowMaximized));
|
QTRY_VERIFY(!(widget.windowState() & Qt::WindowMaximized));
|
||||||
QTest::qWait(500);
|
|
||||||
QVERIFY(widget.restoreGeometry(savedGeometry));
|
QVERIFY(widget.restoreGeometry(savedGeometry));
|
||||||
QTest::qWait(120);
|
|
||||||
QTRY_VERIFY((widget.windowState() & Qt::WindowMaximized));
|
QTRY_VERIFY((widget.windowState() & Qt::WindowMaximized));
|
||||||
QTRY_COMPARE(widget.geometry(), geom);
|
QTRY_COMPARE(widget.geometry(), geom);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user