diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2017-09-11 15:31:07 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2017-09-21 08:36:57 +0000 |
commit | 35073298116d34d40212702d6f836c7341573877 (patch) | |
tree | b469e2424a8fa11034a8d179dce602d2dd826e40 /tests | |
parent | 8bddfd8e179630e5fe125e59a20b478f24a7aac3 (diff) | |
download | qbs-35073298116d34d40212702d6f836c7341573877.tar.gz |
Yield error on conflicting module instances
If there is more than one suitable module instance, we used to pick the
first one. The module order is determined by what QDirIterator provides.
This is surprising and hard to control. Yield an error in this situation
instead.
Task-number: QBS-61
Change-Id: If53853e6d4d32587cb0182f0e25200d402949ff5
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'tests')
8 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/bar/modules/conflicting-instances/bar.qbs b/tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/bar/modules/conflicting-instances/bar.qbs new file mode 100644 index 000000000..84957060c --- /dev/null +++ b/tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/bar/modules/conflicting-instances/bar.qbs @@ -0,0 +1,2 @@ +Module { +} diff --git a/tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/foo/modules/conflicting-instances/foo.qbs b/tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/foo/modules/conflicting-instances/foo.qbs new file mode 100644 index 000000000..84957060c --- /dev/null +++ b/tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/foo/modules/conflicting-instances/foo.qbs @@ -0,0 +1,2 @@ +Module { +} diff --git a/tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/product.qbs b/tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/product.qbs new file mode 100644 index 000000000..28033b174 --- /dev/null +++ b/tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/product.qbs @@ -0,0 +1,5 @@ +import qbs + +Product { + Depends { name: "conflicting-instances" } +} diff --git a/tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/project.qbs b/tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/project.qbs new file mode 100644 index 000000000..76ecc2b5a --- /dev/null +++ b/tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/project.qbs @@ -0,0 +1,6 @@ +import qbs + +Project { + qbsSearchPaths: ["./foo", "./bar"] + references: ["product.qbs"] +} diff --git a/tests/auto/language/testdata/erroneous/conflicting-module-instances.qbs b/tests/auto/language/testdata/erroneous/conflicting-module-instances.qbs new file mode 100644 index 000000000..28033b174 --- /dev/null +++ b/tests/auto/language/testdata/erroneous/conflicting-module-instances.qbs @@ -0,0 +1,5 @@ +import qbs + +Product { + Depends { name: "conflicting-instances" } +} diff --git a/tests/auto/language/testdata/erroneous/modules/conflicting-instances/conflicting-instance1.qbs b/tests/auto/language/testdata/erroneous/modules/conflicting-instances/conflicting-instance1.qbs new file mode 100644 index 000000000..84957060c --- /dev/null +++ b/tests/auto/language/testdata/erroneous/modules/conflicting-instances/conflicting-instance1.qbs @@ -0,0 +1,2 @@ +Module { +} diff --git a/tests/auto/language/testdata/erroneous/modules/conflicting-instances/conflicting-instance2.qbs b/tests/auto/language/testdata/erroneous/modules/conflicting-instances/conflicting-instance2.qbs new file mode 100644 index 000000000..84957060c --- /dev/null +++ b/tests/auto/language/testdata/erroneous/modules/conflicting-instances/conflicting-instance2.qbs @@ -0,0 +1,2 @@ +Module { +} diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp index 3d998f8cd..a5b211934 100644 --- a/tests/auto/language/tst_language.cpp +++ b/tests/auto/language/tst_language.cpp @@ -745,6 +745,10 @@ void TestLanguage::erroneousFiles_data() QTest::newRow("wrong-toplevel-item") << "wrong-toplevel-item.qbs:3:1.*The top-level item must be of type 'Project' or " "'Product', but it is of type 'Artifact'."; + QTest::newRow("conflicting-module-instances") + << "There is more than one candidate for module 'conflicting-instances'."; + QTest::newRow("conflicting-module-instances-in-search-paths/project") + << "There is more than one candidate for module 'conflicting-instances'."; QTest::newRow("module-depends-on-product") << "module-with-product-dependency.qbs:4:5.*Modules cannot depend on products."; QTest::newRow("overwrite-inherited-readonly-property") |