diff options
Diffstat (limited to 'tests/auto/gui/platform')
-rw-r--r-- | tests/auto/gui/platform/qx11info/CMakeLists.txt | 6 | ||||
-rw-r--r-- | tests/auto/gui/platform/qx11info/tst_qx11info.cpp | 37 |
2 files changed, 32 insertions, 11 deletions
diff --git a/tests/auto/gui/platform/qx11info/CMakeLists.txt b/tests/auto/gui/platform/qx11info/CMakeLists.txt index c14630825c..40188f24a0 100644 --- a/tests/auto/gui/platform/qx11info/CMakeLists.txt +++ b/tests/auto/gui/platform/qx11info/CMakeLists.txt @@ -1,6 +1,12 @@ # Copyright (C) 2022 The Qt Company Ltd. # SPDX-License-Identifier: BSD-3-Clause +if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT) + cmake_minimum_required(VERSION 3.16) + project(tst_qx11info LANGUAGES CXX) + find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST) +endif() + qt_internal_add_test(tst_qx11info SOURCES tst_qx11info.cpp diff --git a/tests/auto/gui/platform/qx11info/tst_qx11info.cpp b/tests/auto/gui/platform/qx11info/tst_qx11info.cpp index 315dc55069..f71e644a8f 100644 --- a/tests/auto/gui/platform/qx11info/tst_qx11info.cpp +++ b/tests/auto/gui/platform/qx11info/tst_qx11info.cpp @@ -1,12 +1,14 @@ // Copyright (C) 2016 The Qt Company Ltd. // Copyright (C) 2016 David Faure <david.faure@kdab.com> -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include <QtGui> #include <QtTest/QtTest> #include <QtGui/private/qtx11extras_p.h> +using namespace Qt::StringLiterals; + class tst_QX11Info : public QObject { Q_OBJECT @@ -83,12 +85,21 @@ void initialize() } Q_CONSTRUCTOR_FUNCTION(initialize) +static QString checkSkip() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + return "This test is only for X11, not Wayland."_L1; + if (QGuiApplication::platformName().startsWith(QLatin1String("offscreen"), Qt::CaseInsensitive)) + return "This test is only for X11, not offscreen."_L1; + return ""_L1; +} + void tst_QX11Info::startupId() { int argc = 0; QGuiApplication app(argc, 0); - if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) - QSKIP("This test is only for X11, not Wayland."); + QString result = checkSkip(); + if (!result.isEmpty()) + QSKIP(result.toUtf8()); // This relies on the fact that no widget was shown yet, // so please make sure this method is always the first test. @@ -110,8 +121,9 @@ void tst_QX11Info::isPlatformX11() { int argc = 0; QGuiApplication app(argc, 0); - if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) - QSKIP("This test is only for X11, not Wayland."); + QString result = checkSkip(); + if (!result.isEmpty()) + QSKIP(result.toUtf8()); QVERIFY(QX11Info::isPlatformX11()); } @@ -120,8 +132,9 @@ void tst_QX11Info::appTime() { int argc = 0; QGuiApplication app(argc, 0); - if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) - QSKIP("This test is only for X11, not Wayland."); + QString result = checkSkip(); + if (!result.isEmpty()) + QSKIP(result.toUtf8()); // No X11 event received yet QCOMPARE(QX11Info::appTime(), 0ul); @@ -348,8 +361,9 @@ void tst_QX11Info::peeker() { int argc = 0; QGuiApplication app(argc, 0); - if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) - QSKIP("This test is only for X11, not Wayland."); + QString result = checkSkip(); + if (!result.isEmpty()) + QSKIP(result.toUtf8()); PeekerTest test; test.show(); @@ -361,8 +375,9 @@ void tst_QX11Info::isCompositingManagerRunning() { int argc = 0; QGuiApplication app(argc, 0); - if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) - QSKIP("This test is only for X11, not Wayland."); + QString result = checkSkip(); + if (!result.isEmpty()) + QSKIP(result.toUtf8()); const bool b = QX11Info::isCompositingManagerRunning(); Q_UNUSED(b); const bool b2 = QX11Info::isCompositingManagerRunning(0); |