aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-11-09 17:49:30 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2018-11-12 12:31:09 +0000
commitd1e04aae05e4ea17a6461cf323c9c15ede176b5b (patch)
tree7e4720afbc798051b8b8fc499b5cc7021bef3bfd /tests
parent5f1b52e1c6f7668c3ea21ec11fde818ee6efd521 (diff)
Fix pluginSupport autotest
Our test machine does not have the image plugins we hardcoded, so be more flexible. This also tightens the test a bit. Change-Id: I0cc49b3066909ac3e4ec387515e689a00042f4d5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/blackbox/testdata-qt/plugin-support/modules/m1/m1.qbs10
-rw-r--r--tests/auto/blackbox/testdata-qt/plugin-support/modules/m2/m2.qbs5
-rw-r--r--tests/auto/blackbox/testdata-qt/plugin-support/plugin-support.qbs4
-rw-r--r--tests/auto/blackbox/tst_blackboxqt.cpp48
-rw-r--r--tests/auto/blackbox/tst_blackboxqt.h1
5 files changed, 57 insertions, 11 deletions
diff --git a/tests/auto/blackbox/testdata-qt/plugin-support/modules/m1/m1.qbs b/tests/auto/blackbox/testdata-qt/plugin-support/modules/m1/m1.qbs
index d634742f3..a4cad304f 100644
--- a/tests/auto/blackbox/testdata-qt/plugin-support/modules/m1/m1.qbs
+++ b/tests/auto/blackbox/testdata-qt/plugin-support/modules/m1/m1.qbs
@@ -1,4 +1,12 @@
Module {
+ property bool useDummy
Depends { name: "Qt.plugin_support" }
- Qt.plugin_support.pluginsByType: ({imageformats: "qjpeg"})
+ Properties {
+ condition: useDummy
+ Qt.plugin_support.pluginsByType: ({imageformats: "dummy"})
+ }
+ Properties {
+ condition: Qt.plugin_support.allPluginsByType && Qt.plugin_support.allPluginsByType.imageformats
+ Qt.plugin_support.pluginsByType: ({imageformats: Qt.plugin_support.allPluginsByType.imageformats[0]})
+ }
}
diff --git a/tests/auto/blackbox/testdata-qt/plugin-support/modules/m2/m2.qbs b/tests/auto/blackbox/testdata-qt/plugin-support/modules/m2/m2.qbs
index 4941495ff..c4730ab6b 100644
--- a/tests/auto/blackbox/testdata-qt/plugin-support/modules/m2/m2.qbs
+++ b/tests/auto/blackbox/testdata-qt/plugin-support/modules/m2/m2.qbs
@@ -1,4 +1,7 @@
Module {
Depends { name: "Qt.plugin_support" }
- Qt.plugin_support.pluginsByType: ({imageformats: "qgif"})
+ Properties {
+ condition: Qt.plugin_support.allPluginsByType && Qt.plugin_support.allPluginsByType.imageformats
+ Qt.plugin_support.pluginsByType: ({imageformats: Qt.plugin_support.allPluginsByType.imageformats[1]})
+ }
}
diff --git a/tests/auto/blackbox/testdata-qt/plugin-support/plugin-support.qbs b/tests/auto/blackbox/testdata-qt/plugin-support/plugin-support.qbs
index 6ea0ecc51..c554a7dc2 100644
--- a/tests/auto/blackbox/testdata-qt/plugin-support/plugin-support.qbs
+++ b/tests/auto/blackbox/testdata-qt/plugin-support/plugin-support.qbs
@@ -3,9 +3,11 @@ QtGuiApplication {
id: staticProbe
property bool isStaticQt: Qt.gui.isStaticLibrary
property var plugins: Qt.plugin_support.effectivePluginsByType
+ property var allPlugins: Qt.plugin_support.allPluginsByType
configure: {
console.info("static Qt: " + isStaticQt);
- console.info("image plugins: " + plugins.imageformats);
+ console.info("requested image plugins: %" + plugins.imageformats + "%");
+ console.info("all image plugins: #" + allPlugins.imageformats + "#");
console.info("platform plugin count: " + (plugins.platforms || []).length);
}
}
diff --git a/tests/auto/blackbox/tst_blackboxqt.cpp b/tests/auto/blackbox/tst_blackboxqt.cpp
index dfaaba504..ce97979e7 100644
--- a/tests/auto/blackbox/tst_blackboxqt.cpp
+++ b/tests/auto/blackbox/tst_blackboxqt.cpp
@@ -256,21 +256,53 @@ void TestBlackboxQt::pluginMetaData()
QVERIFY2(m_qbsStdout.contains("moc"), m_qbsStdout.constData());
}
+void TestBlackboxQt::pluginSupport_data()
+{
+ QTest::addColumn<bool>("invalidPlugin");
+ QTest::newRow("request valid plugins") << false;
+ QTest::newRow("request invalid plugin") << true;
+}
+
void TestBlackboxQt::pluginSupport()
{
QDir::setCurrent(testDataDir + "/plugin-support");
- QCOMPARE(runQbs(), 0);
+ QFETCH(bool, invalidPlugin);
+ QbsRunParameters resolveParams("resolve");
+ if (invalidPlugin) {
+ resolveParams.arguments << "modules.m1.useDummy:true";
+ resolveParams.expectFailure = true;
+ }
+ QCOMPARE(runQbs(resolveParams) == 0, !invalidPlugin);
+ if (invalidPlugin) {
+ QVERIFY2(m_qbsStderr.contains("Plugin 'dummy' of type 'imageformats' was requested, "
+ "but is not available"), m_qbsStderr.constData());
+ return;
+ }
const bool isStaticQt = m_qbsStdout.contains("static Qt: true");
const bool isDynamicQt = m_qbsStdout.contains("static Qt: false");
QVERIFY(isStaticQt != isDynamicQt);
- QVERIFY2(!m_qbsStdout.contains("qt_plugin_import_qico.cpp"), m_qbsStdout.constData());
- if (isStaticQt) {
- QVERIFY2(m_qbsStdout.contains("image plugins: qjpeg,qgif"), m_qbsStdout.constData());
+ if (isStaticQt)
QVERIFY2(m_qbsStdout.contains("platform plugin count: 1"), m_qbsStdout.constData());
- QVERIFY2(m_qbsStdout.contains("qt_plugin_import_qjpeg.cpp"), m_qbsStdout.constData());
- QVERIFY2(m_qbsStdout.contains("qt_plugin_import_qgif.cpp"), m_qbsStdout.constData());
- } else {
- QSKIP("Qt is not static");
+ else
+ QVERIFY2(m_qbsStdout.contains("platform plugin count: 0"), m_qbsStdout.constData());
+ const auto extractList = [this](const char sep) {
+ const int listStartIndex = m_qbsStdout.indexOf(sep);
+ const int listEndIndex = m_qbsStdout.indexOf(sep, listStartIndex + 1);
+ const QByteArray listString = m_qbsStdout.mid(listStartIndex + 1,
+ listEndIndex - listStartIndex - 1);
+ return listString.isEmpty() ? QByteArrayList() : listString.split(',');
+ };
+ const QByteArrayList enabledPlugins = extractList('%');
+ if (isStaticQt)
+ QCOMPARE(enabledPlugins.size(), 2);
+ else
+ QVERIFY(enabledPlugins.empty());
+ const QByteArrayList allPlugins = extractList('#');
+ QVERIFY(allPlugins.size() >= enabledPlugins.size());
+ QCOMPARE(runQbs(), 0);
+ for (const QByteArray &plugin : allPlugins) {
+ QCOMPARE(m_qbsStdout.contains("qt_plugin_import_" + plugin + ".cpp"),
+ enabledPlugins.contains(plugin));
}
}
diff --git a/tests/auto/blackbox/tst_blackboxqt.h b/tests/auto/blackbox/tst_blackboxqt.h
index b843978d4..f42c225d8 100644
--- a/tests/auto/blackbox/tst_blackboxqt.h
+++ b/tests/auto/blackbox/tst_blackboxqt.h
@@ -57,6 +57,7 @@ private slots:
void mocSameFileName();
void pkgconfig();
void pluginMetaData();
+ void pluginSupport_data();
void pluginSupport();
void qmlDebugging();
void qobjectInObjectiveCpp();