aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2017-09-11 15:31:07 +0200
committerJoerg Bornemann <joerg.bornemann@qt.io>2017-09-21 08:36:57 +0000
commit35073298116d34d40212702d6f836c7341573877 (patch)
treeb469e2424a8fa11034a8d179dce602d2dd826e40 /tests
parent8bddfd8e179630e5fe125e59a20b478f24a7aac3 (diff)
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')
-rw-r--r--tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/bar/modules/conflicting-instances/bar.qbs2
-rw-r--r--tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/foo/modules/conflicting-instances/foo.qbs2
-rw-r--r--tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/product.qbs5
-rw-r--r--tests/auto/language/testdata/erroneous/conflicting-module-instances-in-search-paths/project.qbs6
-rw-r--r--tests/auto/language/testdata/erroneous/conflicting-module-instances.qbs5
-rw-r--r--tests/auto/language/testdata/erroneous/modules/conflicting-instances/conflicting-instance1.qbs2
-rw-r--r--tests/auto/language/testdata/erroneous/modules/conflicting-instances/conflicting-instance2.qbs2
-rw-r--r--tests/auto/language/tst_language.cpp4
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")