diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2016-11-23 14:50:35 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2016-11-23 16:54:44 +0000 |
commit | 0e304181dd94064b355c3dcbc82f557db8653a81 (patch) | |
tree | 761f119a92289f2677fa686bf52540fd34868c5a | |
parent | 0ab562cae6fd6b5c334714efad5eb5a2882ef2ab (diff) |
Add autotest for calling a base item's validate script
Because why not.
Task-number: QBS-979
Change-Id: I6fce703e59b7806f634d749dbc90b8d28536d4de
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
5 files changed, 36 insertions, 0 deletions
diff --git a/src/lib/corelib/language/testdata/base-validate/base-validate.qbs b/src/lib/corelib/language/testdata/base-validate/base-validate.qbs new file mode 100644 index 000000000..b1b025f94 --- /dev/null +++ b/src/lib/corelib/language/testdata/base-validate/base-validate.qbs @@ -0,0 +1,5 @@ +import qbs + +Product { + Depends { name: "m" } +} diff --git a/src/lib/corelib/language/testdata/base-validate/modules/m/M.qbs b/src/lib/corelib/language/testdata/base-validate/modules/m/M.qbs new file mode 100644 index 000000000..9874fbd5d --- /dev/null +++ b/src/lib/corelib/language/testdata/base-validate/modules/m/M.qbs @@ -0,0 +1,6 @@ +import qbs + +Module { + condition: false + validate: true +} diff --git a/src/lib/corelib/language/testdata/base-validate/modules/m/m.qbs b/src/lib/corelib/language/testdata/base-validate/modules/m/m.qbs new file mode 100644 index 000000000..93ee8f3e1 --- /dev/null +++ b/src/lib/corelib/language/testdata/base-validate/modules/m/m.qbs @@ -0,0 +1,11 @@ +import qbs + +M { + condition: true + validate: { + var parentResult = base; + if (!parentResult) + throw "Parent failed"; + throw "Parent succeeded, child failed."; + } +} diff --git a/src/lib/corelib/language/tst_language.cpp b/src/lib/corelib/language/tst_language.cpp index 236d03e67..03ca80047 100644 --- a/src/lib/corelib/language/tst_language.cpp +++ b/src/lib/corelib/language/tst_language.cpp @@ -190,6 +190,19 @@ void TestLanguage::baseProperty() QCOMPARE(exceptionCaught, false); } +void TestLanguage::baseValidation() +{ + qbs::SetupProjectParameters params = defaultParameters; + params.setProjectFilePath(testProject("base-validate/base-validate.qbs")); + try { + project = loader->loadProject(params); + QVERIFY2(false, "exception expected"); + } catch (const qbs::ErrorInfo &e) { + QVERIFY2(e.toString().contains("Parent succeeded, child failed."), + qPrintable(e.toString())); + } +} + void TestLanguage::buildConfigStringListSyntax() { bool exceptionCaught = false; diff --git a/src/lib/corelib/language/tst_language.h b/src/lib/corelib/language/tst_language.h index c8d6e59f9..f03f4be7f 100644 --- a/src/lib/corelib/language/tst_language.h +++ b/src/lib/corelib/language/tst_language.h @@ -76,6 +76,7 @@ private slots: void cleanupTestCase(); void baseProperty(); + void baseValidation(); void buildConfigStringListSyntax(); void builtinFunctionInSearchPathsProperty(); void canonicalArchitecture(); |