aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2023-08-26 16:12:07 +0300
committerIvan Komissarov <ABBAPOH@gmail.com>2023-08-29 14:53:05 +0000
commit229061b696a14e4578a25f5288f7c994f1a6b0b8 (patch)
tree0d1f332d0fd26f817f15e7db68f2c60b7b4b5dd3 /tests/auto
parentf19e6751987c54ee5cb16cfa144c82f4fd36dc73 (diff)
providers: report exceptions in Provider items
If provider is seriously broken, we should give user some hints in case of optional dependencies; otherwise errors are silently ignored. Change-Id: Ie88c2c706bff600086d7760056df155b7a7e8705 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/blackbox/testdata-providers/broken-provider/broken-provider.qbs13
-rw-r--r--tests/auto/blackbox/testdata-providers/broken-provider/module-providers/provider_a.qbs5
-rw-r--r--tests/auto/blackbox/tst_blackboxproviders.cpp12
-rw-r--r--tests/auto/blackbox/tst_blackboxproviders.h1
4 files changed, 31 insertions, 0 deletions
diff --git a/tests/auto/blackbox/testdata-providers/broken-provider/broken-provider.qbs b/tests/auto/blackbox/testdata-providers/broken-provider/broken-provider.qbs
new file mode 100644
index 000000000..461c7e30e
--- /dev/null
+++ b/tests/auto/blackbox/testdata-providers/broken-provider/broken-provider.qbs
@@ -0,0 +1,13 @@
+Project {
+ qbsModuleProviders: "provider_a"
+ name: "project"
+ Project {
+ name: "innerProject"
+ Product {
+ name: "p1"
+ Depends { name: "qbsothermodule"; required: false }
+ Depends { name: "qbsmetatestmodule" }
+ }
+ }
+
+}
diff --git a/tests/auto/blackbox/testdata-providers/broken-provider/module-providers/provider_a.qbs b/tests/auto/blackbox/testdata-providers/broken-provider/module-providers/provider_a.qbs
new file mode 100644
index 000000000..f446d2d13
--- /dev/null
+++ b/tests/auto/blackbox/testdata-providers/broken-provider/module-providers/provider_a.qbs
@@ -0,0 +1,5 @@
+ModuleProvider {
+ relativeSearchPaths: {
+ throw "This provider is broken";
+ }
+}
diff --git a/tests/auto/blackbox/tst_blackboxproviders.cpp b/tests/auto/blackbox/tst_blackboxproviders.cpp
index 327fedea5..9d1c6d7d4 100644
--- a/tests/auto/blackbox/tst_blackboxproviders.cpp
+++ b/tests/auto/blackbox/tst_blackboxproviders.cpp
@@ -49,6 +49,18 @@ TestBlackboxProviders::TestBlackboxProviders()
{
}
+void TestBlackboxProviders::brokenProvider()
+{
+ QDir::setCurrent(testDataDir + "/broken-provider");
+ QbsRunParameters params;
+ params.expectFailure = true;
+ QVERIFY(runQbs(params) != 0);
+
+ QVERIFY(m_qbsStderr.contains("Error executing provider for module 'qbsothermodule'"));
+ QVERIFY(m_qbsStderr.contains("Error executing provider for module 'qbsmetatestmodule'"));
+ QCOMPARE(m_qbsStderr.count("This provider is broken"), 2);
+}
+
void TestBlackboxProviders::fallbackModuleProvider_data()
{
QTest::addColumn<bool>("fallbacksEnabledGlobally");
diff --git a/tests/auto/blackbox/tst_blackboxproviders.h b/tests/auto/blackbox/tst_blackboxproviders.h
index 02bd91617..62dce9866 100644
--- a/tests/auto/blackbox/tst_blackboxproviders.h
+++ b/tests/auto/blackbox/tst_blackboxproviders.h
@@ -41,6 +41,7 @@ public:
TestBlackboxProviders();
private slots:
+ void brokenProvider();
void fallbackModuleProvider_data();
void fallbackModuleProvider();
void moduleProviders();