From 52484cc4b6696c8a5c1f69125d81eb0cede8cdb2 Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Fri, 11 Oct 2019 15:21:54 +0200 Subject: Widget tests: Skip tests that fail on Wayland Either by testing for platform name or window activation. After this gets in, we can enable widget tests in the Wayland bot, which hopefully will reduce the number of regressions in the Wayland plugin. Fixes: QTBUG-62188 Change-Id: I71ce8abd6b5891e5b953126b1c35345892585931 Reviewed-by: Paul Olav Tvete --- tests/auto/widgets/kernel/qaction/tst_qaction.cpp | 10 +++++ .../kernel/qapplication/tst_qapplication.cpp | 3 ++ .../widgets/kernel/qshortcut/tst_qshortcut.cpp | 24 ++++++++++ .../kernel/qstackedlayout/tst_qstackedlayout.cpp | 3 ++ .../auto/widgets/kernel/qtooltip/tst_qtooltip.cpp | 6 +++ tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp | 51 ++++++++++++++++++++++ .../kernel/qwidget_window/tst_qwidget_window.cpp | 18 ++++++++ .../qwindowcontainer/tst_qwindowcontainer.cpp | 15 +++++++ 8 files changed, 130 insertions(+) (limited to 'tests/auto/widgets/kernel') diff --git a/tests/auto/widgets/kernel/qaction/tst_qaction.cpp b/tests/auto/widgets/kernel/qaction/tst_qaction.cpp index 0d62c2cd4b..1247f48dd0 100644 --- a/tests/auto/widgets/kernel/qaction/tst_qaction.cpp +++ b/tests/auto/widgets/kernel/qaction/tst_qaction.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include class tst_QAction : public QObject @@ -409,6 +410,9 @@ void tst_QAction::task229128TriggeredSignalWhenInActiongroup() void tst_QAction::repeat() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + MyWidget testWidget(this); testWidget.show(); QApplication::setActiveWindow(&testWidget); @@ -484,6 +488,9 @@ void tst_QAction::disableShortcutsWithBlockedWidgets_data() void tst_QAction::disableShortcutsWithBlockedWidgets() { + if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation)) + QSKIP("Window activation is not supported"); + QMainWindow window; QFETCH(Qt::ShortcutContext, shortcutContext); @@ -528,6 +535,9 @@ protected: // ShortcutOverride event first before passing it on as a normal KeyEvent. void tst_QAction::shortcutFromKeyEvent() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + ShortcutOverrideWidget testWidget; QAction action; action.setShortcut(Qt::Key_1); diff --git a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp index 367a5767c4..8a5eff3fac 100644 --- a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp +++ b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp @@ -1704,6 +1704,9 @@ void tst_QApplication::focusMouseClick() int argc = 1; QApplication app(argc, &argv0); + if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation)) + QSKIP("Window activation is not supported"); + QWidget w; w.setWindowTitle(QLatin1String(QTest::currentTestFunction())); w.setFocusPolicy(Qt::StrongFocus); diff --git a/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp b/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp index 84120c70e9..82ab9c9c3b 100644 --- a/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp +++ b/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp @@ -612,6 +612,9 @@ ButtonWidget::ButtonWidget() // ------------------------------------------------------------------ void tst_QShortcut::disabledItems() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + ButtonWidget mainW; mainW.setWindowTitle(QTest::currentTestFunction()); mainW.show(); @@ -692,6 +695,9 @@ void tst_QShortcut::disabledItems() // ------------------------------------------------------------------ void tst_QShortcut::ambiguousRotation() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + MainWindow mainW; const QString name = QLatin1String(QTest::currentTestFunction()); mainW.setWindowTitle(name); @@ -834,6 +840,9 @@ void tst_QShortcut::ambiguousRotation() void tst_QShortcut::ambiguousItems() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + ButtonWidget mainW; mainW.setWindowTitle(QTest::currentTestFunction()); mainW.show(); @@ -874,6 +883,9 @@ void tst_QShortcut::ambiguousItems() // ------------------------------------------------------------------ void tst_QShortcut::unicodeCompare() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + ButtonWidget mainW; mainW.setWindowTitle(QTest::currentTestFunction()); mainW.show(); @@ -906,6 +918,9 @@ void tst_QShortcut::unicodeCompare() // ------------------------------------------------------------------ void tst_QShortcut::keypressConsumption() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + MainWindow mainW; mainW.setWindowTitle(QTest::currentTestFunction()); mainW.show(); @@ -1099,6 +1114,9 @@ public: void tst_QShortcut::duplicatedShortcutOverride() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + OverrideCountingWidget w; w.setWindowTitle(Q_FUNC_INFO); w.resize(200, 200); @@ -1199,6 +1217,9 @@ void tst_QShortcut::sendKeyEvents(QWidget *w, int k1, QChar c1, int k2, QChar c2 void tst_QShortcut::testElement() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + static QScopedPointer mainW; currentResult = NoResult; @@ -1243,6 +1264,9 @@ void tst_QShortcut::testElement() void tst_QShortcut::shortcutToFocusProxy() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QLineEdit le; QCompleter completer; QStringListModel *slm = new QStringListModel(QStringList() << "a0" << "a1" << "a2", &completer); diff --git a/tests/auto/widgets/kernel/qstackedlayout/tst_qstackedlayout.cpp b/tests/auto/widgets/kernel/qstackedlayout/tst_qstackedlayout.cpp index 10712ea9ad..053dc03296 100644 --- a/tests/auto/widgets/kernel/qstackedlayout/tst_qstackedlayout.cpp +++ b/tests/auto/widgets/kernel/qstackedlayout/tst_qstackedlayout.cpp @@ -92,6 +92,9 @@ tst_QStackedLayout::tst_QStackedLayout() void tst_QStackedLayout::init() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + if (testWidget) { delete testWidget; testWidget = 0; diff --git a/tests/auto/widgets/kernel/qtooltip/tst_qtooltip.cpp b/tests/auto/widgets/kernel/qtooltip/tst_qtooltip.cpp index 3d609d0b9c..053f4948a7 100644 --- a/tests/auto/widgets/kernel/qtooltip/tst_qtooltip.cpp +++ b/tests/auto/widgets/kernel/qtooltip/tst_qtooltip.cpp @@ -96,6 +96,9 @@ void tst_QToolTip::task183679_data() void tst_QToolTip::task183679() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QFETCH(Qt::Key, key); QFETCH(bool, visible); @@ -200,6 +203,9 @@ static QByteArray msgSizeTooSmall(const QSize &actual, const QSize &expected) // Set a large font size and verify that the tool tip is big enough. void tst_QToolTip::qtbug64550_stylesheet() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + Widget_task183679 widget; widget.setStyleSheet(QStringLiteral("* { font-size: 48pt; }\n")); widget.show(); diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp index 40377eb946..c29d1bbe04 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -858,6 +858,9 @@ void tst_QWidget::palettePropagation() void tst_QWidget::palettePropagation2() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + // ! Note, the code below is executed in tst_QWidget's constructor. // QPalette palette; // font.setColor(QPalette::ToolTipBase, QColor(12, 13, 14)); @@ -1018,6 +1021,9 @@ void tst_QWidget::ignoreKeyEventsWhenDisabled_QTBUG27417() void tst_QWidget::properTabHandlingWhenDisabled_QTBUG27417() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget widget; widget.setWindowTitle(__FUNCTION__); widget.setMinimumWidth(m_testWidgetSize.width()); @@ -1679,6 +1685,9 @@ public: void tst_QWidget::defaultTabOrder() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + const int compositeCount = 2; Container container; Composite *composite[compositeCount]; @@ -1733,6 +1742,9 @@ void tst_QWidget::defaultTabOrder() void tst_QWidget::reverseTabOrder() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + const int compositeCount = 2; Container container; container.setWindowTitle(QLatin1String(QTest::currentTestFunction())); @@ -1792,6 +1804,9 @@ void tst_QWidget::reverseTabOrder() void tst_QWidget::tabOrderWithProxy() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + const int compositeCount = 2; Container container; container.setWindowTitle(QLatin1String(QTest::currentTestFunction())); @@ -1850,6 +1865,9 @@ void tst_QWidget::tabOrderWithProxy() void tst_QWidget::tabOrderWithCompoundWidgets() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + const int compositeCount = 4; Container container; container.setWindowTitle(QLatin1String(QTest::currentTestFunction())); @@ -2038,6 +2056,9 @@ void tst_QWidget::tabOrderNoChange2() void tst_QWidget::appFocusWidgetWithFocusProxyLater() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + // Given a lineedit without a focus proxy QWidget window; window.setWindowTitle(QTest::currentTestFunction()); @@ -2062,6 +2083,9 @@ void tst_QWidget::appFocusWidgetWithFocusProxyLater() void tst_QWidget::appFocusWidgetWhenLosingFocusProxy() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + // Given a lineedit with a focus proxy QWidget window; window.setWindowTitle(QTest::currentTestFunction()); @@ -3974,6 +3998,9 @@ void tst_QWidget::optimizedResizeMove() void tst_QWidget::optimizedResize_topLevel() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + if (QHighDpiScaling::isActive()) QSKIP("Skip due to rounding errors in the regions."); StaticWidget topLevel; @@ -4089,6 +4116,9 @@ void tst_QWidget::setMaximumSize() void tst_QWidget::setFixedSize() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget w; QSize defaultSize = w.size(); @@ -5638,6 +5668,9 @@ public: void tst_QWidget::setFocus() { + if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation)) + QSKIP("Window activation is not supported"); + QScopedPointer testWidget(new QWidget); testWidget->resize(m_testWidgetSize); testWidget->setWindowTitle(__FUNCTION__); @@ -8885,6 +8918,9 @@ public: void tst_QWidget::translucentWidget() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QPixmap pm(16,16); pm.fill(Qt::red); ColorRedWidget label; @@ -8954,6 +8990,9 @@ public slots: void tst_QWidget::setClearAndResizeMask() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + UpdateWidget topLevel; topLevel.setWindowTitle(QLatin1String(QTest::currentTestFunction())); topLevel.resize(160, 160); @@ -9522,6 +9561,9 @@ void tst_QWidget::updateOnDestroyedSignal() void tst_QWidget::toplevelLineEditFocus() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QLineEdit w; w.setWindowTitle(QLatin1String(QTest::currentTestFunction())); w.setMinimumWidth(m_testWidgetSize.width()); @@ -9974,6 +10016,9 @@ void tst_QWidget::taskQTBUG_17333_ResizeInfiniteRecursion() void tst_QWidget::nativeChildFocus() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget w; w.setWindowTitle(QLatin1String(QTest::currentTestFunction())); w.setMinimumWidth(m_testWidgetSize.width()); @@ -10112,6 +10157,9 @@ private: void tst_QWidget::grabMouse() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QStringList log; GrabLoggerWidget w(&log); w.setWindowTitle(QLatin1String(QTest::currentTestFunction())); @@ -10147,6 +10195,9 @@ void tst_QWidget::grabMouse() void tst_QWidget::grabKeyboard() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget w; w.setWindowTitle(QLatin1String(QTest::currentTestFunction())); w.setObjectName(QLatin1String("tst_qwidget_grabKeyboard")); diff --git a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp index c6b5669965..7d114fde56 100644 --- a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp +++ b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp @@ -411,6 +411,9 @@ void tst_QWidget_window::tst_paintEventOnSecondShow() void tst_QWidget_window::tst_exposeObscuredMapped_QTBUG39220() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + const auto integration = QGuiApplicationPrivate::platformIntegration(); if (!integration->hasCapability(QPlatformIntegration::MultipleWindows) || !integration->hasCapability(QPlatformIntegration::NonFullScreenWindows) @@ -438,6 +441,9 @@ void tst_QWidget_window::tst_exposeObscuredMapped_QTBUG39220() void tst_QWidget_window::tst_paintEventOnResize_QTBUG50796() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + const QRect availableGeo = QGuiApplication::primaryScreen()->availableGeometry(); QWidget root; @@ -582,6 +588,9 @@ static QString msgEventAccepted(const QDropEvent &e) void tst_QWidget_window::tst_dnd() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QStringList log; DnDEventLoggerWidget dndTestWidget(&log); @@ -819,6 +828,9 @@ public: void tst_QWidget_window::tst_dnd_propagation() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QMimeData mimeData; mimeData.setText(QLatin1String("testmimetext")); @@ -1066,6 +1078,9 @@ protected: void tst_QWidget_window::tst_eventfilter_on_toplevel() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget w; EventFilter filter; w.installEventFilter(&filter); @@ -1124,6 +1139,9 @@ void tst_QWidget_window::QTBUG_50561_QCocoaBackingStore_paintDevice_crash() void tst_QWidget_window::setWindowState_data() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QString platformName = QGuiApplication::platformName().toLower(); QTest::addColumn("state"); diff --git a/tests/auto/widgets/kernel/qwindowcontainer/tst_qwindowcontainer.cpp b/tests/auto/widgets/kernel/qwindowcontainer/tst_qwindowcontainer.cpp index 693a792f0a..98aebfe975 100644 --- a/tests/auto/widgets/kernel/qwindowcontainer/tst_qwindowcontainer.cpp +++ b/tests/auto/widgets/kernel/qwindowcontainer/tst_qwindowcontainer.cpp @@ -93,6 +93,9 @@ void tst_QWindowContainer::cleanup() void tst_QWindowContainer::testShow() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget root; root.setWindowTitle(QTest::currentTestFunction()); root.setGeometry(m_availableGeometry.x() + 100, m_availableGeometry.y() + 100, 400, 400); @@ -135,6 +138,9 @@ void tst_QWindowContainer::testPositionAndSize() void tst_QWindowContainer::testExposeObscure() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + Window *window = new Window(); QScopedPointer container(QWidget::createWindowContainer(window)); @@ -187,6 +193,9 @@ void tst_QWindowContainer::testBehindTheScenesDeletion() void tst_QWindowContainer::testActivation() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget root; root.setWindowTitle(QTest::currentTestFunction()); @@ -244,6 +253,9 @@ void tst_QWindowContainer::testUnparenting() void tst_QWindowContainer::testUnparentReparent() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget root; QWindow *window = new QWindow(); @@ -357,6 +369,9 @@ void tst_QWindowContainer::testDockWidget() void tst_QWindowContainer::testNativeContainerParent() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget root; root.setWindowTitle(QTest::currentTestFunction()); root.setGeometry(m_availableGeometry.x() + 50, m_availableGeometry.y() + 50, 200, 200); -- cgit v1.2.3