aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2017-05-12 16:32:39 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2017-05-15 07:43:09 +0000
commitc94f8348420ffa2588cab987f66f1c3b66c494b9 (patch)
treead59d877f993f4ba2b54c0e8889294206e979da5
parent130897199664f52d737ad4f3e24df19ccfbdee93 (diff)
Make plugin meta data autotest compatible with static Qt builds
Change-Id: I785c02ceb4a048ca53b29d3883b63402599fdbd9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--tests/auto/blackbox/testdata/plugin-meta-data/app.cpp33
-rw-r--r--tests/auto/blackbox/testdata/plugin-meta-data/plugin-meta-data.qbs5
2 files changed, 32 insertions, 6 deletions
diff --git a/tests/auto/blackbox/testdata/plugin-meta-data/app.cpp b/tests/auto/blackbox/testdata/plugin-meta-data/app.cpp
index 8912e27c3..2cd748b00 100644
--- a/tests/auto/blackbox/testdata/plugin-meta-data/app.cpp
+++ b/tests/auto/blackbox/testdata/plugin-meta-data/app.cpp
@@ -31,13 +31,38 @@
#include <QJsonObject>
#include <QJsonValue>
#include <QPluginLoader>
+#include <QStaticPlugin>
#include <QtDebug>
+#ifdef QT_STATIC
+Q_IMPORT_PLUGIN(ThePlugin)
+#endif
+
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
- QPluginLoader loader(QLatin1String("thePlugin"));
- const QJsonValue v = loader.metaData().value(QLatin1String("theKey"));
+ QJsonObject metaData;
+ for (const QStaticPlugin &p : QPluginLoader::staticPlugins()) {
+ const QJsonObject &md = p.metaData();
+ if (md.value("className") == "ThePlugin") {
+ metaData = md;
+ break;
+ }
+ }
+#ifdef QT_STATIC
+ if (metaData.isEmpty()) {
+ qDebug() << "no static metadata";
+ return 1;
+ }
+#else
+ if (!metaData.isEmpty()) {
+ qDebug() << "static metadata";
+ return 1;
+ }
+#endif
+ if (metaData.isEmpty())
+ metaData = QPluginLoader("thePlugin").metaData();
+ const QJsonValue v = metaData.value(QLatin1String("theKey"));
if (!v.isArray()) {
qDebug() << "value is" << v;
return 1;
@@ -47,10 +72,10 @@ int main(int argc, char *argv[])
qDebug() << "value is" << v;
return 1;
}
- const QJsonValue v2 = loader.metaData().value(QLatin1String("MetaData")).toObject()
+ const QJsonValue v2 = metaData.value(QLatin1String("MetaData")).toObject()
.value(QLatin1String("theOtherKey"));
if (v2.toString() != QLatin1String("theOtherValue")) {
- qDebug() << "metadata:" << loader.metaData();
+ qDebug() << "metadata:" << metaData;
return 1;
}
return 0;
diff --git a/tests/auto/blackbox/testdata/plugin-meta-data/plugin-meta-data.qbs b/tests/auto/blackbox/testdata/plugin-meta-data/plugin-meta-data.qbs
index 6023aabaa..0d623a739 100644
--- a/tests/auto/blackbox/testdata/plugin-meta-data/plugin-meta-data.qbs
+++ b/tests/auto/blackbox/testdata/plugin-meta-data/plugin-meta-data.qbs
@@ -17,14 +17,15 @@ Project {
files: ["app.cpp"]
}
- DynamicLibrary {
+ Library {
+ type: Qt.core.staticBuild ? "staticlibrary" : "dynamiclibrary"
name: "thePlugin"
Depends { name: "cpp" }
Depends { name: "Qt.core" }
bundle.isBundle: false
- cpp.defines: ["QT_PLUGIN"]
+ cpp.defines: [Qt.core.staticBuild ? "QT_STATICPLUGIN" : "QT_PLUGIN"]
cpp.cxxLanguageVersion: "c++11"
cpp.sonamePrefix: qbs.targetOS.contains("darwin") ? "@rpath" : undefined
cpp.includePaths: ["."]