diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2023-08-26 16:12:07 +0300 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2023-08-29 14:53:05 +0000 |
commit | 229061b696a14e4578a25f5288f7c994f1a6b0b8 (patch) | |
tree | 0d1f332d0fd26f817f15e7db68f2c60b7b4b5dd3 /tests/auto | |
parent | f19e6751987c54ee5cb16cfa144c82f4fd36dc73 (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')
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(); |