aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-06-15 09:32:55 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-06-15 12:38:55 +0000
commit62808656466750ce5a0d42c656e45832220fedaa (patch)
treed05c4948395487fbe3819845bc3ebff080e550f3 /tests
parentd994e54712efb69225d73d93fc57b89a3d39cacb (diff)
Check for duplicate entries in multiplex properties
This used to lead to an error message about duplicate product names, which left the user in the dark about the actual problem. Change-Id: I460dcdf89112124cfd303529d42acd6c13fe9155 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/api/tst_api.cpp4
-rw-r--r--tests/auto/language/testdata/erroneous/duplicate-multiplex-value.qbs8
-rw-r--r--tests/auto/language/testdata/erroneous/duplicate-multiplex-value2.qbs8
-rw-r--r--tests/auto/language/tst_language.cpp5
4 files changed, 23 insertions, 2 deletions
diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp
index 83a5ccbda..7af87fc32 100644
--- a/tests/auto/api/tst_api.cpp
+++ b/tests/auto/api/tst_api.cpp
@@ -1822,7 +1822,7 @@ void TestApi::multiArch()
setupJob.reset(project.setupProject(setupParams, m_logSink, 0));
waitForFinished(setupJob.get());
QVERIFY(setupJob->error().hasError());
- QVERIFY2(setupJob->error().toString().contains("Duplicate product name 'p1'"),
+ QVERIFY2(setupJob->error().toString().contains("Duplicate entry 'host' in qbs.profiles."),
qPrintable(setupJob->error().toString()));
// Error check: Try to build for the same profile twice, this time attaching
@@ -1834,7 +1834,7 @@ void TestApi::multiArch()
setupJob.reset(project.setupProject(setupParams, m_logSink, 0));
waitForFinished(setupJob.get());
QVERIFY(setupJob->error().hasError());
- QVERIFY2(setupJob->error().toString().contains("Duplicate product name 'p1'"),
+ QVERIFY2(setupJob->error().toString().contains("Duplicate entry 'target' in qbs.profiles."),
qPrintable(setupJob->error().toString()));
}
diff --git a/tests/auto/language/testdata/erroneous/duplicate-multiplex-value.qbs b/tests/auto/language/testdata/erroneous/duplicate-multiplex-value.qbs
new file mode 100644
index 000000000..56da41af1
--- /dev/null
+++ b/tests/auto/language/testdata/erroneous/duplicate-multiplex-value.qbs
@@ -0,0 +1,8 @@
+import qbs
+
+Product {
+ name: "p"
+ multiplexByQbsProperties: "architectures"
+ aggregate: false
+ qbs.architectures: ["x86", "arm", "x86"]
+}
diff --git a/tests/auto/language/testdata/erroneous/duplicate-multiplex-value2.qbs b/tests/auto/language/testdata/erroneous/duplicate-multiplex-value2.qbs
new file mode 100644
index 000000000..e412e5210
--- /dev/null
+++ b/tests/auto/language/testdata/erroneous/duplicate-multiplex-value2.qbs
@@ -0,0 +1,8 @@
+import qbs
+
+Product {
+ name: "p"
+ multiplexByQbsProperties: ["architectures", "buildVariants", "architectures"]
+ aggregate: false
+ qbs.architectures: ["x86", "arm"]
+}
diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp
index f52c6ec9c..961808f3d 100644
--- a/tests/auto/language/tst_language.cpp
+++ b/tests/auto/language/tst_language.cpp
@@ -834,6 +834,11 @@ void TestLanguage::erroneousFiles_data()
<< "mismatching-multiplex-dependency.qbs:9:5.*Dependency from product "
"'b \\{\"architecture\":\"mips\"\\}' to product 'a \\{\"architecture\":\"mips\"\\}'"
" not fulfilled.";
+ QTest::newRow("duplicate-multiplex-value")
+ << "duplicate-multiplex-value.qbs:3:1.*Duplicate entry 'x86' in qbs.architectures.";
+ QTest::newRow("duplicate-multiplex-value2")
+ << "duplicate-multiplex-value2.qbs:3:1.*Duplicate entry 'architecture' in "
+ "Product.multiplexByQbsProperties.";
QTest::newRow("invalid-references")
<< "invalid-references.qbs:4:17.*Cannot open '.*nosuchproject.qbs'";
}