From 7524a36a26e6eead68fd3d26246f4567fdab0dc1 Mon Sep 17 00:00:00 2001 From: Dimitrios Apostolou Date: Fri, 29 Jul 2022 12:45:16 +0200 Subject: [PATCH] Stabilize test by not activating window Window activation is not working reliably on X11 when combined with X11BypassWindowManagerHint, see QXcbWindow::requestActivateWindow(). The test itself counts repaints, so qWaitForWindowExposed() shouldn't be needed. This way we don't need to QSKIP() the test if window activation fails. Fixes: QTBUG-98921 Change-Id: I849b7261c757fb7cbcde73f11bbe1a74a862cb9c Reviewed-by: Volker Hilsheimer --- tests/auto/widgets/graphicsview/qgraphicswidget/BLACKLIST | 3 --- .../graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp | 7 ++----- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/tests/auto/widgets/graphicsview/qgraphicswidget/BLACKLIST b/tests/auto/widgets/graphicsview/qgraphicswidget/BLACKLIST index 65a6f5b8b95..cad381b7b78 100644 --- a/tests/auto/widgets/graphicsview/qgraphicswidget/BLACKLIST +++ b/tests/auto/widgets/graphicsview/qgraphicswidget/BLACKLIST @@ -6,6 +6,3 @@ b2qt [updateFocusChainWhenChildDie] b2qt qnx -[initialShow] -macos ci -opensuse-leap diff --git a/tests/auto/widgets/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/widgets/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp index 89548337aa1..fedb82e6415 100644 --- a/tests/auto/widgets/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp @@ -3098,9 +3098,7 @@ void tst_QGraphicsWidget::initialShow() dummyView->setWindowFlags(Qt::X11BypassWindowManagerHint); EventSpy paintSpy(dummyView->viewport(), QEvent::Paint); dummyView->show(); - qApp->setActiveWindow(dummyView.data()); - if (!QTest::qWaitForWindowActive(dummyView.data())) - QSKIP("Graphics view failed to show (possibly due to Qt::X11BypassWindowManagerHint"); + QVERIFY(QTest::qWaitForWindowExposed(dummyView.data())); const int expectedRepaintCount = paintSpy.count(); dummyView.reset(); @@ -3113,8 +3111,7 @@ void tst_QGraphicsWidget::initialShow() QGraphicsView view(&scene); view.setWindowFlags(view.windowFlags()|Qt::X11BypassWindowManagerHint); view.show(); - qApp->setActiveWindow(&view); - QVERIFY(QTest::qWaitForWindowActive(&view)); + QVERIFY(QTest::qWaitForWindowExposed(&view)); QTRY_COMPARE(widget->repaints, expectedRepaintCount); }