diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2017-05-12 16:32:39 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2017-05-15 07:43:09 +0000 |
commit | c94f8348420ffa2588cab987f66f1c3b66c494b9 (patch) | |
tree | ad59d877f993f4ba2b54c0e8889294206e979da5 | |
parent | 130897199664f52d737ad4f3e24df19ccfbdee93 (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.cpp | 33 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata/plugin-meta-data/plugin-meta-data.qbs | 5 |
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: ["."] |