summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/plugin/qplugin
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/plugin/qplugin')
-rw-r--r--tests/auto/corelib/plugin/qplugin/CMakeLists.txt48
-rw-r--r--tests/auto/corelib/plugin/qplugin/debugplugin/CMakeLists.txt17
-rw-r--r--tests/auto/corelib/plugin/qplugin/debugplugin/debugplugin.pro6
-rw-r--r--tests/auto/corelib/plugin/qplugin/debugplugin/main.cpp29
-rw-r--r--tests/auto/corelib/plugin/qplugin/invalidplugin/CMakeLists.txt19
-rw-r--r--tests/auto/corelib/plugin/qplugin/invalidplugin/invalidplugin.pro5
-rw-r--r--tests/auto/corelib/plugin/qplugin/invalidplugin/main.cpp30
-rw-r--r--tests/auto/corelib/plugin/qplugin/qplugin.pro17
-rw-r--r--tests/auto/corelib/plugin/qplugin/releaseplugin/CMakeLists.txt17
-rw-r--r--tests/auto/corelib/plugin/qplugin/releaseplugin/main.cpp29
-rw-r--r--tests/auto/corelib/plugin/qplugin/releaseplugin/releaseplugin.pro6
-rw-r--r--tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp150
-rw-r--r--tests/auto/corelib/plugin/qplugin/tst_qplugin.pro6
13 files changed, 163 insertions, 216 deletions
diff --git a/tests/auto/corelib/plugin/qplugin/CMakeLists.txt b/tests/auto/corelib/plugin/qplugin/CMakeLists.txt
new file mode 100644
index 0000000000..d0e8736e09
--- /dev/null
+++ b/tests/auto/corelib/plugin/qplugin/CMakeLists.txt
@@ -0,0 +1,48 @@
+# 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_qplugin LANGUAGES CXX)
+ find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST)
+endif()
+
+add_subdirectory(invalidplugin)
+add_subdirectory(debugplugin)
+add_subdirectory(releaseplugin)
+
+qt_internal_add_test(tst_qplugin
+ SOURCES
+ tst_qplugin.cpp
+ LIBRARIES
+ Qt::CorePrivate
+)
+
+if(NOT ANDROID)
+ # Collect test data
+ file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ plugins/*)
+ list(APPEND test_data ${test_data_glob})
+ set_target_properties(tst_qplugin PROPERTIES TESTDATA "${test_data}")
+else()
+ # On Android the plugins must be located in the libs subdir of the APK.
+ # Use QT_ANDROID_EXTRA_LIBS to achieve that.
+ set(plugins
+ invalidplugin
+ debugplugin
+ releaseplugin
+ )
+ set(extra_libs)
+ foreach(plugin IN LISTS plugins)
+ list(APPEND extra_libs
+ "${CMAKE_CURRENT_BINARY_DIR}/plugins/lib${plugin}_${CMAKE_ANDROID_ARCH_ABI}.so")
+ endforeach()
+ set_target_properties(tst_qplugin PROPERTIES
+ QT_ANDROID_EXTRA_LIBS "${extra_libs}"
+ )
+endif()
+
+target_compile_definitions(tst_qplugin PRIVATE CMAKE_BUILD=1)
+
+add_dependencies(tst_qplugin invalidplugin debugplugin releaseplugin)
diff --git a/tests/auto/corelib/plugin/qplugin/debugplugin/CMakeLists.txt b/tests/auto/corelib/plugin/qplugin/debugplugin/CMakeLists.txt
new file mode 100644
index 0000000000..230282f175
--- /dev/null
+++ b/tests/auto/corelib/plugin/qplugin/debugplugin/CMakeLists.txt
@@ -0,0 +1,17 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+#####################################################################
+## debugplugin Generic Library:
+#####################################################################
+
+qt_internal_add_cmake_library(debugplugin
+ MODULE
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../plugins"
+ SOURCES
+ main.cpp
+ LIBRARIES
+ Qt::Core
+)
+
+qt_autogen_tools_initial_setup(debugplugin)
diff --git a/tests/auto/corelib/plugin/qplugin/debugplugin/debugplugin.pro b/tests/auto/corelib/plugin/qplugin/debugplugin/debugplugin.pro
deleted file mode 100644
index ca47df22bd..0000000000
--- a/tests/auto/corelib/plugin/qplugin/debugplugin/debugplugin.pro
+++ /dev/null
@@ -1,6 +0,0 @@
-TEMPLATE = lib
-CONFIG += plugin debug
-CONFIG -= release debug_and_release
-SOURCES = main.cpp
-QT = core
-DESTDIR = ../plugins
diff --git a/tests/auto/corelib/plugin/qplugin/debugplugin/main.cpp b/tests/auto/corelib/plugin/qplugin/debugplugin/main.cpp
index c610bfdc46..fe25c44d87 100644
--- a/tests/auto/corelib/plugin/qplugin/debugplugin/main.cpp
+++ b/tests/auto/corelib/plugin/qplugin/debugplugin/main.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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 General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** 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-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include <QtPlugin>
#include <QObject>
diff --git a/tests/auto/corelib/plugin/qplugin/invalidplugin/CMakeLists.txt b/tests/auto/corelib/plugin/qplugin/invalidplugin/CMakeLists.txt
new file mode 100644
index 0000000000..0b12e9c0f0
--- /dev/null
+++ b/tests/auto/corelib/plugin/qplugin/invalidplugin/CMakeLists.txt
@@ -0,0 +1,19 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+#####################################################################
+## invalidplugin Generic Library:
+#####################################################################
+
+qt_internal_add_cmake_library(invalidplugin
+ MODULE
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../plugins"
+ SOURCES
+ main.cpp
+ LIBRARIES
+ Qt::Core
+)
+
+# TEMPLATE = "lib"
+
+qt_autogen_tools_initial_setup(invalidplugin)
diff --git a/tests/auto/corelib/plugin/qplugin/invalidplugin/invalidplugin.pro b/tests/auto/corelib/plugin/qplugin/invalidplugin/invalidplugin.pro
deleted file mode 100644
index d953c6d367..0000000000
--- a/tests/auto/corelib/plugin/qplugin/invalidplugin/invalidplugin.pro
+++ /dev/null
@@ -1,5 +0,0 @@
-QT = core
-TEMPLATE = lib
-CONFIG += plugin
-SOURCES = main.cpp
-DESTDIR = ../plugins
diff --git a/tests/auto/corelib/plugin/qplugin/invalidplugin/main.cpp b/tests/auto/corelib/plugin/qplugin/invalidplugin/main.cpp
index e6603ec89f..10b6131857 100644
--- a/tests/auto/corelib/plugin/qplugin/invalidplugin/main.cpp
+++ b/tests/auto/corelib/plugin/qplugin/invalidplugin/main.cpp
@@ -1,33 +1,9 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 Intel Corporation.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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 General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** 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-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 Intel Corporation.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include <qplugin.h>
+// be careful when updating to V2, the header is different on ELF systems
QT_PLUGIN_METADATA_SECTION
static const char pluginMetaData[512] = {
'q', 'p', 'l', 'u', 'g', 'i', 'n', ' ',
diff --git a/tests/auto/corelib/plugin/qplugin/qplugin.pro b/tests/auto/corelib/plugin/qplugin/qplugin.pro
deleted file mode 100644
index 96fc704c07..0000000000
--- a/tests/auto/corelib/plugin/qplugin/qplugin.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-TEMPLATE = subdirs
-TESTPLUGINS = invalidplugin
-
-win32 {
- contains(QT_CONFIG, debug): TESTPLUGINS += debugplugin
- contains(QT_CONFIG, release): TESTPLUGINS += releaseplugin
-} else:osx {
- CONFIG(debug, debug|release): TESTPLUGINS += debugplugin
- CONFIG(release, debug|release): TESTPLUGINS += releaseplugin
-} else {
- TESTPLUGINS += debugplugin releaseplugin
-}
-
-SUBDIRS += main $$TESTPLUGINS
-main.file = tst_qplugin.pro
-main.depends = $$TESTPLUGINS
-
diff --git a/tests/auto/corelib/plugin/qplugin/releaseplugin/CMakeLists.txt b/tests/auto/corelib/plugin/qplugin/releaseplugin/CMakeLists.txt
new file mode 100644
index 0000000000..3ec89eb4c6
--- /dev/null
+++ b/tests/auto/corelib/plugin/qplugin/releaseplugin/CMakeLists.txt
@@ -0,0 +1,17 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+#####################################################################
+## releaseplugin Generic Library:
+#####################################################################
+
+qt_internal_add_cmake_library(releaseplugin
+ MODULE
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../plugins"
+ SOURCES
+ main.cpp
+ LIBRARIES
+ Qt::Core
+)
+
+qt_autogen_tools_initial_setup(releaseplugin)
diff --git a/tests/auto/corelib/plugin/qplugin/releaseplugin/main.cpp b/tests/auto/corelib/plugin/qplugin/releaseplugin/main.cpp
index dd936f7da1..ee14da8384 100644
--- a/tests/auto/corelib/plugin/qplugin/releaseplugin/main.cpp
+++ b/tests/auto/corelib/plugin/qplugin/releaseplugin/main.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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 General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** 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-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include <QtPlugin>
#include <QObject>
diff --git a/tests/auto/corelib/plugin/qplugin/releaseplugin/releaseplugin.pro b/tests/auto/corelib/plugin/qplugin/releaseplugin/releaseplugin.pro
deleted file mode 100644
index b7dea67894..0000000000
--- a/tests/auto/corelib/plugin/qplugin/releaseplugin/releaseplugin.pro
+++ /dev/null
@@ -1,6 +0,0 @@
-TEMPLATE = lib
-CONFIG += plugin release
-CONFIG -= debug debug_and_release
-SOURCES = main.cpp
-QT = core
-DESTDIR = ../plugins
diff --git a/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp b/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp
index a290c012df..9443ba9e5c 100644
--- a/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp
+++ b/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp
@@ -1,32 +1,7 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Copyright (C) 2018 Intel Corporation.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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 General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** 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-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <QtTest/QtTest>
+// Copyright (C) 2020 The Qt Company Ltd.
+// Copyright (C) 2021 Intel Corporation.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+#include <QTest>
#include <QCoreApplication>
#include <QDebug>
@@ -41,7 +16,6 @@ class tst_QPlugin : public QObject
Q_OBJECT
QDir dir;
- QString invalidPluginName;
public:
tst_QPlugin();
@@ -55,8 +29,15 @@ private slots:
};
tst_QPlugin::tst_QPlugin()
- : dir(QFINDTESTDATA("plugins"))
{
+ // On Android the plugins must be located in the APK's libs subdir
+#ifndef Q_OS_ANDROID
+ dir = QFINDTESTDATA("plugins");
+#else
+ const QStringList paths = QCoreApplication::libraryPaths();
+ if (!paths.isEmpty())
+ dir = paths.first();
+#endif
}
void tst_QPlugin::initTestCase()
@@ -64,25 +45,27 @@ void tst_QPlugin::initTestCase()
QVERIFY2(dir.exists(),
qPrintable(QString::fromLatin1("Cannot find the 'plugins' directory starting from '%1'").
arg(QDir::toNativeSeparators(QDir::currentPath()))));
-
- const auto fileNames = dir.entryList({"*invalid*"}, QDir::Files);
- if (!fileNames.isEmpty())
- invalidPluginName = dir.absoluteFilePath(fileNames.first());
}
void tst_QPlugin::loadDebugPlugin()
{
- const auto fileNames = dir.entryList(QStringList() << "*debug*", QDir::Files);
+ const auto fileNames = dir.entryList(QStringList() << "*debugplugin*", QDir::Files);
+ if (fileNames.isEmpty())
+ QSKIP("No debug plugins found - skipping test");
+
for (const QString &fileName : fileNames) {
if (!QLibrary::isLibrary(fileName))
continue;
QPluginLoader loader(dir.filePath(fileName));
-#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
+#if defined(Q_OS_UNIX) && !defined(Q_OS_DARWIN)
// we can always load a plugin on unix
QVERIFY(loader.load());
QObject *object = loader.instance();
QVERIFY(object != 0);
#else
+# if defined(CMAKE_BUILD) && defined(QT_NO_DEBUG)
+ QSKIP("Skipping test as it is not possible to disable build targets based on configuration with CMake");
+# endif
// loading a plugin is dependent on which lib we are running against
# if defined(QT_NO_DEBUG)
// release build, we cannot load debug plugins
@@ -99,17 +82,23 @@ void tst_QPlugin::loadDebugPlugin()
void tst_QPlugin::loadReleasePlugin()
{
- const auto fileNames = dir.entryList(QStringList() << "*release*", QDir::Files);
+ const auto fileNames = dir.entryList(QStringList() << "*releaseplugin*", QDir::Files);
+ if (fileNames.isEmpty())
+ QSKIP("No release plugins found - skipping test");
+
for (const QString &fileName : fileNames) {
if (!QLibrary::isLibrary(fileName))
continue;
QPluginLoader loader(dir.filePath(fileName));
-#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
+#if defined(Q_OS_UNIX) && !defined(Q_OS_DARWIN)
// we can always load a plugin on unix
QVERIFY(loader.load());
QObject *object = loader.instance();
QVERIFY(object != 0);
#else
+# if defined(CMAKE_BUILD) && !defined(QT_NO_DEBUG)
+ QSKIP("Skipping test as it is not possible to disable build targets based on configuration with CMake");
+# endif
// loading a plugin is dependent on which lib we are running against
# if defined(QT_NO_DEBUG)
// release build, we can load debug plugins
@@ -130,49 +119,10 @@ void tst_QPlugin::scanInvalidPlugin_data()
QTest::addColumn<bool>("loads");
QTest::addColumn<QString>("errMsg");
-#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
- // Binary JSON metadata
- QByteArray prefix = "QTMETADATA ";
-
- {
- QJsonObject obj;
- obj.insert("IID", "org.qt-project.tst_qplugin");
- obj.insert("className", "tst");
- obj.insert("version", int(QT_VERSION));
-#ifdef QT_NO_DEBUG
- obj.insert("debug", false);
-#else
- obj.insert("debug", true);
-#endif
- obj.insert("MetaData", QJsonObject());
- QTest::newRow("json-control") << (prefix + QJsonDocument(obj).toBinaryData()) << true << "";
- }
-
- QTest::newRow("json-zeroes") << prefix << false << " ";
-
- prefix += "qbjs";
- QTest::newRow("bad-json-version0") << prefix << false << " ";
- QTest::newRow("bad-json-version2") << (prefix + QByteArray("\2\0\0\0", 4)) << false << " ";
-
- // valid qbjs version 1
- prefix += QByteArray("\1\0\0\0");
-
- // too large for the file (100 MB)
- QTest::newRow("bad-json-size-large1") << (prefix + QByteArray("\0\0\x40\x06")) << false << " ";
-
- // too large for binary JSON (512 MB)
- QTest::newRow("bad-json-size-large2") << (prefix + QByteArray("\0\0\0\x20")) << false << " ";
-
- // could overflow
- QTest::newRow("bad-json-size-large3") << (prefix + "\xff\xff\xff\x7f") << false << " ";
-#endif
-
// CBOR metadata
- QByteArray cprefix = "QTMETADATA !1234";
- cprefix[12] = 0; // current version
- cprefix[13] = QT_VERSION_MAJOR;
- cprefix[14] = QT_VERSION_MINOR;
- cprefix[15] = qPluginArchRequirements();
+ static constexpr QPluginMetaData::MagicHeader header = {};
+ static constexpr qsizetype MagicLen = sizeof(header.magic);
+ QByteArray cprefix(reinterpret_cast<const char *>(&header), sizeof(header));
QByteArray cborValid = [] {
QCborMap m;
@@ -183,27 +133,27 @@ void tst_QPlugin::scanInvalidPlugin_data()
}();
QTest::newRow("cbor-control") << (cprefix + cborValid) << true << "";
- cprefix[12] = 1;
- QTest::newRow("cbor-major-too-new") << (cprefix + cborValid) << false
- << " Invalid metadata version";
-
- cprefix[12] = 0;
- cprefix[13] = QT_VERSION_MAJOR + 1;
+ cprefix[MagicLen + 1] = QT_VERSION_MAJOR + 1;
QTest::newRow("cbor-major-too-new") << (cprefix + cborValid) << false << "";
- cprefix[13] = QT_VERSION_MAJOR - 1;
+ cprefix[MagicLen + 1] = QT_VERSION_MAJOR - 1;
QTest::newRow("cbor-major-too-old") << (cprefix + cborValid) << false << "";
- cprefix[13] = QT_VERSION_MAJOR;
- cprefix[14] = QT_VERSION_MINOR + 1;
+ cprefix[MagicLen + 1] = QT_VERSION_MAJOR;
+ cprefix[MagicLen + 2] = QT_VERSION_MINOR + 1;
QTest::newRow("cbor-minor-too-new") << (cprefix + cborValid) << false << "";
+ cprefix[MagicLen + 2] = QT_VERSION_MINOR;
QTest::newRow("cbor-invalid") << (cprefix + "\xff") << false
<< " Metadata parsing error: Invalid CBOR stream: unexpected 'break' byte";
QTest::newRow("cbor-not-map1") << (cprefix + "\x01") << false
<< " Unexpected metadata contents";
QTest::newRow("cbor-not-map2") << (cprefix + "\x81\x01") << false
<< " Unexpected metadata contents";
+
+ ++cprefix[MagicLen + 0];
+ QTest::newRow("cbor-major-too-new-invalid")
+ << (cprefix + cborValid) << false << " Invalid metadata version";
}
static const char invalidPluginSignature[] = "qplugin testfile";
@@ -227,7 +177,16 @@ static qsizetype locateMetadata(const uchar *data, qsizetype len)
void tst_QPlugin::scanInvalidPlugin()
{
- QVERIFY(!invalidPluginName.isEmpty());
+#if defined(Q_OS_MACOS) && defined(Q_PROCESSOR_ARM)
+ QSKIP("This test crashes on ARM macOS");
+#endif
+ const auto fileNames = dir.entryList({"*invalidplugin*"}, QDir::Files);
+ QString invalidPluginName;
+ if (fileNames.isEmpty())
+ QSKIP("No invalid plugin found - skipping test");
+ else
+ invalidPluginName = dir.absoluteFilePath(fileNames.first());
+
// copy the file
QFileInfo fn(invalidPluginName);
@@ -257,13 +216,14 @@ void tst_QPlugin::scanInvalidPlugin()
memset(data + offset + metadata.size(), 0, 512 - metadata.size());
}
+#if defined(Q_OS_QNX)
+ // On QNX plugin access is still too early
+ QTest::qSleep(1000);
+#endif
+
// now try to load this
QFETCH(bool, loads);
QFETCH(QString, errMsg);
- if (!errMsg.isEmpty())
- QTest::ignoreMessage(QtWarningMsg,
- "Found invalid metadata in lib " + QFile::encodeName(newName) +
- ":" + errMsg.toUtf8());
QPluginLoader loader(newName);
QCOMPARE(loader.load(), loads);
if (loads)
diff --git a/tests/auto/corelib/plugin/qplugin/tst_qplugin.pro b/tests/auto/corelib/plugin/qplugin/tst_qplugin.pro
deleted file mode 100644
index 4432ee20c1..0000000000
--- a/tests/auto/corelib/plugin/qplugin/tst_qplugin.pro
+++ /dev/null
@@ -1,6 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qplugin
-QT = core-private testlib
-SOURCES = tst_qplugin.cpp
-
-TESTDATA += plugins/*