aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-06-21 10:53:39 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-06-26 10:55:07 +0000
commitc87299f5d0c406b1ee804760c4336f7963ecd344 (patch)
tree20581cf25731b5024083d559855c9a4032f21e41 /tests
parent68911d57b06eede061ad173df43322998c4a8d45 (diff)
Do not crash on invalid property assignment in Export item
The crash would happen when creating the export information for a product whose Export item contained an assignment of the form "x.y: original", where x is not a module and the assignment was inside a Properties item. Task-number: QBS-1362 Change-Id: I900857fcd97852360ec2b75de1b7a791fd948dc4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/language/testdata/erroneous/original-in-export-item3.qbs17
-rw-r--r--tests/auto/language/tst_language.cpp4
2 files changed, 21 insertions, 0 deletions
diff --git a/tests/auto/language/testdata/erroneous/original-in-export-item3.qbs b/tests/auto/language/testdata/erroneous/original-in-export-item3.qbs
new file mode 100644
index 000000000..d7bcb322e
--- /dev/null
+++ b/tests/auto/language/testdata/erroneous/original-in-export-item3.qbs
@@ -0,0 +1,17 @@
+import qbs
+
+Project {
+ Product {
+ name: "a"
+ Export {
+ Properties {
+ condition: true
+ x.y.z: original
+ }
+ }
+ }
+ Product {
+ name: "b"
+ Depends { name: "a" }
+ }
+}
diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp
index a82646e4e..9aa92229e 100644
--- a/tests/auto/language/tst_language.cpp
+++ b/tests/auto/language/tst_language.cpp
@@ -883,6 +883,9 @@ void TestLanguage::erroneousFiles_data()
QTest::newRow("original-in-export-item2")
<< "original-in-export-item2.qbs:6:9.*Item 'x.y' is not declared. Did you forget "
"to add a Depends item";
+ QTest::newRow("original-in-export-item3")
+ << "original-in-export-item3.qbs:6:9.*Item 'x.y' is not declared. Did you forget "
+ "to add a Depends item";
QTest::newRow("mismatching-multiplex-dependency")
<< "mismatching-multiplex-dependency.qbs:9:5.*Dependency from product "
"'b \\{\"architecture\":\"mips\"\\}' to product 'a \\{\"architecture\":\"mips\"\\}'"
@@ -912,6 +915,7 @@ void TestLanguage::erroneousFiles()
return;
}
QEXPECT_FAIL("undeclared_property_in_Properties_item", "Too expensive to check", Continue);
+ QEXPECT_FAIL("original-in-export-item3", "Too expensive to check", Continue);
QVERIFY(!"No error thrown on invalid input.");
}