diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-06-18 10:25:33 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-06-18 10:47:27 +0000 |
commit | 3eedf7598c322519c3a04374784bb2251e8982df (patch) | |
tree | ab3c309a9491db6e748b8ccfdaab1cc031c0d359 /tests/auto/language | |
parent | 1b1296d69791aa7a7e2b8f703c8a9ea1e42b54c8 (diff) | |
download | qbs-3eedf7598c322519c3a04374784bb2251e8982df.tar.gz |
Catch mis-use of "original" as default property value
This used to cause an infinite recursion, eventually crashing after
running out of stack space.
Change-Id: I073f7163d73a70b17bab078c8a99199bc9d21eaa
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'tests/auto/language')
4 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/language/testdata/erroneous/modules/module-with-invalid-original/module-with-invalid-original.qbs b/tests/auto/language/testdata/erroneous/modules/module-with-invalid-original/module-with-invalid-original.qbs new file mode 100644 index 000000000..ef2404412 --- /dev/null +++ b/tests/auto/language/testdata/erroneous/modules/module-with-invalid-original/module-with-invalid-original.qbs @@ -0,0 +1,3 @@ +Module { + property string p: original +} diff --git a/tests/auto/language/testdata/erroneous/original-in-export-item.qbs b/tests/auto/language/testdata/erroneous/original-in-export-item.qbs new file mode 100644 index 000000000..51fedb9a2 --- /dev/null +++ b/tests/auto/language/testdata/erroneous/original-in-export-item.qbs @@ -0,0 +1,14 @@ +import qbs + +Project { + Product { + name: "a" + Export { + property string p: original + } + } + Product { + name: "b" + Depends { name: "a" } + } +} diff --git a/tests/auto/language/testdata/erroneous/original-in-module-prototype.qbs b/tests/auto/language/testdata/erroneous/original-in-module-prototype.qbs new file mode 100644 index 000000000..e7128092a --- /dev/null +++ b/tests/auto/language/testdata/erroneous/original-in-module-prototype.qbs @@ -0,0 +1,5 @@ +import qbs + +Product { + Depends { name: "module-with-invalid-original" } +} diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp index 961808f3d..4d24e773b 100644 --- a/tests/auto/language/tst_language.cpp +++ b/tests/auto/language/tst_language.cpp @@ -830,6 +830,12 @@ void TestLanguage::erroneousFiles_data() QTest::newRow("original-in-product-property") << "original-in-product-property.qbs" ":4:21.*The special value 'original' can only be used with module properties."; + QTest::newRow("original-in-module-prototype") + << "module-with-invalid-original.qbs:2:24.*The special value 'original' cannot be used " + "on the right-hand side of a property declaration."; + QTest::newRow("original-in-export-item") + << "original-in-export-item.qbs:7:32.*The special value 'original' cannot be used " + "on the right-hand side of a property declaration."; QTest::newRow("mismatching-multiplex-dependency") << "mismatching-multiplex-dependency.qbs:9:5.*Dependency from product " "'b \\{\"architecture\":\"mips\"\\}' to product 'a \\{\"architecture\":\"mips\"\\}'" |