diff options
Diffstat (limited to 'tests/auto')
6 files changed, 183 insertions, 0 deletions
diff --git a/tests/auto/cmake/CMakeLists.txt b/tests/auto/cmake/CMakeLists.txt index a94f1a51fe..acb7253731 100644 --- a/tests/auto/cmake/CMakeLists.txt +++ b/tests/auto/cmake/CMakeLists.txt @@ -216,3 +216,5 @@ _qt_internal_test_expect_pass(test_add_resources_binary_generated BINARY test_add_resources_binary_generated) include(test_plugin_shared_static_flavor.cmake) +_qt_internal_test_expect_pass(test_init_resources_static_plugin + BINARY test_init_resources_static_plugin) diff --git a/tests/auto/cmake/test_init_resources_static_plugin/CMakeLists.txt b/tests/auto/cmake/test_init_resources_static_plugin/CMakeLists.txt new file mode 100644 index 0000000000..a0e40585e3 --- /dev/null +++ b/tests/auto/cmake/test_init_resources_static_plugin/CMakeLists.txt @@ -0,0 +1,52 @@ +cmake_minimum_required(VERSION 3.16) + +if(DEFINED CMAKE_Core_MODULE_MAJOR_VERSION) + set(project_version "${CMAKE_Core_MODULE_MAJOR_VERSION}.\ +${CMAKE_Core_MODULE_MINOR_VERSION}.${CMAKE_Core_MODULE_PATCH_VERSION}" + ) +else() + set(project_version "6.0.0") +endif() + +project(TestInitResourcesStaticPlugin + LANGUAGES CXX + VERSION "${project_version}" +) + +find_package(Qt6 COMPONENTS Core BuildInternals CONFIG REQUIRED) +qt_prepare_standalone_project() + +find_package(Qt6 COMPONENTS Gui Test CONFIG REQUIRED) # Add gui since Core have no plugin types + +qt_internal_add_plugin(TestInitResourcesStaticPlugin STATIC + OUTPUT_NAME + testinitresourcesstaticplugin + TYPE generic + SOURCES + pluginmain.cpp + SKIP_INSTALL + LIBRARIES + Qt::Core +) + +qt_internal_add_resource(TestInitResourcesStaticPlugin "teststaticplugin1" + PREFIX + "/teststaticplugin1" + FILES + "testfile1.txt" +) + +qt_internal_add_resource(TestInitResourcesStaticPlugin "teststaticplugin2" + PREFIX + "/teststaticplugin2" + FILES + "testfile2.txt" +) + +qt_internal_add_test(test_init_resources_static_plugin + SOURCES + test_init_resources_static_plugin.cpp + LIBRARIES + Qt::Core + TestInitResourcesStaticPlugin +) diff --git a/tests/auto/cmake/test_init_resources_static_plugin/pluginmain.cpp b/tests/auto/cmake/test_init_resources_static_plugin/pluginmain.cpp new file mode 100644 index 0000000000..992c948e55 --- /dev/null +++ b/tests/auto/cmake/test_init_resources_static_plugin/pluginmain.cpp @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2021 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/qfile.h> +#include <QtCore/qdebug.h> + +QT_BEGIN_NAMESPACE + +class TestStaticPlugin : public QObject +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "TestStaticPlugin" URI "qt.teststaticplugin") +public: + TestStaticPlugin() = default; + Q_INVOKABLE bool checkResources() + { + return QFile::exists(":/teststaticplugin1/testfile1.txt") + && QFile::exists(":/teststaticplugin2/testfile2.txt"); + } +}; + +QT_END_NAMESPACE + +#include "pluginmain.moc" diff --git a/tests/auto/cmake/test_init_resources_static_plugin/test_init_resources_static_plugin.cpp b/tests/auto/cmake/test_init_resources_static_plugin/test_init_resources_static_plugin.cpp new file mode 100644 index 0000000000..73452258e4 --- /dev/null +++ b/tests/auto/cmake/test_init_resources_static_plugin/test_init_resources_static_plugin.cpp @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2021 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> +#include <QtCore/qfile.h> +#include <QtCore/qobject.h> +#include <QtCore/qpluginloader.h> +#include <QtPlugin> + +Q_IMPORT_PLUGIN(TestStaticPlugin) + +class TestInitResourcesStaticPlugin : public QObject +{ + Q_OBJECT +private slots: + void resourceFilesExist(); +}; + +void TestInitResourcesStaticPlugin::resourceFilesExist() +{ + bool result = false; + for (QObject *obj : QPluginLoader::staticInstances()) { + if (obj->metaObject()->className() == QLatin1String("TestStaticPlugin")) { + QMetaObject::invokeMethod(obj, "checkResources", Qt::DirectConnection, + Q_RETURN_ARG(bool, result)); + } + break; + } + QVERIFY(result); +} + +QTEST_MAIN(TestInitResourcesStaticPlugin) +#include "test_init_resources_static_plugin.moc" diff --git a/tests/auto/cmake/test_init_resources_static_plugin/testfile1.txt b/tests/auto/cmake/test_init_resources_static_plugin/testfile1.txt new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/auto/cmake/test_init_resources_static_plugin/testfile1.txt diff --git a/tests/auto/cmake/test_init_resources_static_plugin/testfile2.txt b/tests/auto/cmake/test_init_resources_static_plugin/testfile2.txt new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/auto/cmake/test_init_resources_static_plugin/testfile2.txt |