diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2023-10-25 16:14:54 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2023-10-26 20:04:51 +0200 |
commit | f419a8d67f2487aa07496539a49c0aca7eab1c27 (patch) | |
tree | d97b64c168855cc00079f304f3581e04be03c142 /tests/auto/corelib/platform | |
parent | beeb531c3200b64cc46234e9fa4dcdac6eadae2c (diff) |
Android: add an appless test that recreates QGuiApplication
Make sure this works and doesn't cause any QJniEnvironment or other
JNI object lifetime issues.
Change-Id: I08b55982266dfb1821517449f6eb9f2796cea9b7
Reviewed-by: Juha Vuolle <juha.vuolle@qt.io>
Diffstat (limited to 'tests/auto/corelib/platform')
3 files changed, 73 insertions, 0 deletions
diff --git a/tests/auto/corelib/platform/CMakeLists.txt b/tests/auto/corelib/platform/CMakeLists.txt index 5f127f4e91..3455736eab 100644 --- a/tests/auto/corelib/platform/CMakeLists.txt +++ b/tests/auto/corelib/platform/CMakeLists.txt @@ -3,6 +3,7 @@ if(ANDROID) add_subdirectory(android) + add_subdirectory(android_appless) endif() if(WIN32) add_subdirectory(windows) diff --git a/tests/auto/corelib/platform/android_appless/CMakeLists.txt b/tests/auto/corelib/platform/android_appless/CMakeLists.txt new file mode 100644 index 0000000000..bcb7024b29 --- /dev/null +++ b/tests/auto/corelib/platform/android_appless/CMakeLists.txt @@ -0,0 +1,19 @@ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +##################################################################### +## tst_android_appless Test: +##################################################################### + +if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT) + cmake_minimum_required(VERSION 3.16) + project(tst_android_appless LANGUAGES CXX) + find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST) +endif() + +qt_internal_add_test(tst_android_appless + SOURCES + tst_android_appless.cpp + LIBRARIES + Qt::Gui +) diff --git a/tests/auto/corelib/platform/android_appless/tst_android_appless.cpp b/tests/auto/corelib/platform/android_appless/tst_android_appless.cpp new file mode 100644 index 0000000000..19d7d2f4bb --- /dev/null +++ b/tests/auto/corelib/platform/android_appless/tst_android_appless.cpp @@ -0,0 +1,53 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include <QTest> +#include <QTimer> +#include <QGuiApplication> +#include <QWindow> + +using namespace Qt::StringLiterals; + +class tst_AndroidAppless : public QObject +{ + Q_OBJECT +private slots: + void app_data(); + void app(); + +}; + +#define CREATE_DUMMY_ARGC_ARGV() \ + int argc = 1; \ + char *argv[] = { const_cast<char *>("tst_android_appless") }; + + +void tst_AndroidAppless::app_data() +{ + QTest::addColumn<QString>("displayName"); + QTest::addRow("one") << "The first QGuiApplication instance"; + QTest::addRow("two") << "The second QGuiApplication instance"; +} + +void tst_AndroidAppless::app() +{ + QFETCH(const QString, displayName); + CREATE_DUMMY_ARGC_ARGV() + + QGuiApplication app(argc, argv); + app.setApplicationDisplayName(displayName); + + QWindow window; + window.show(); + + QTimer::singleShot(1000, &app, QGuiApplication::quit); + + window.show(); + app.exec(); +} + +#undef CREATE_DUMMY_ARGC_ARGV + +QTEST_APPLESS_MAIN(tst_AndroidAppless) +#include "tst_android_appless.moc" + |