diff options
Diffstat (limited to 'tests/auto/language')
5 files changed, 46 insertions, 0 deletions
diff --git a/tests/auto/language/testdata/module-merging-variant-values/module-merging-variant-values.qbs b/tests/auto/language/testdata/module-merging-variant-values/module-merging-variant-values.qbs new file mode 100644 index 000000000..e4bf0ad4f --- /dev/null +++ b/tests/auto/language/testdata/module-merging-variant-values/module-merging-variant-values.qbs @@ -0,0 +1,7 @@ +import qbs + +Product { + multiplexByQbsProperties: ["architectures"] + qbs.architectures: ["a1", "a2"] + Depends { name: "m2" } +} diff --git a/tests/auto/language/testdata/module-merging-variant-values/modules/m1/m1.qbs b/tests/auto/language/testdata/module-merging-variant-values/modules/m1/m1.qbs new file mode 100644 index 000000000..6fc9c6b86 --- /dev/null +++ b/tests/auto/language/testdata/module-merging-variant-values/modules/m1/m1.qbs @@ -0,0 +1,6 @@ +Module { + condition: qbs.architecture === "a1" || qbs.architecture === "a2" + + property string arch + qbs.architecture: undefined // We do something like this in GenericGCC.qbs +} diff --git a/tests/auto/language/testdata/module-merging-variant-values/modules/m2/m2.qbs b/tests/auto/language/testdata/module-merging-variant-values/modules/m2/m2.qbs new file mode 100644 index 000000000..8361b91d4 --- /dev/null +++ b/tests/auto/language/testdata/module-merging-variant-values/modules/m2/m2.qbs @@ -0,0 +1,14 @@ +Module { + Depends { name: "m1" } + m1.arch: qbs.architecture + property string arch: qbs.architecture + + validate: { + if (qbs.architecture !== "a1" && qbs.architecture !== "a2") + throw "Unexpected arch " + qbs.architecture; + if (arch !== qbs.architecture) + throw "Oops: " + arch + "/" + qbs.architecture; + if (m1.arch !== qbs.architecture) + throw "Oops: " + m1.arch + "/" + qbs.architecture; + } +} diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp index ef549da21..f52c6ec9c 100644 --- a/tests/auto/language/tst_language.cpp +++ b/tests/auto/language/tst_language.cpp @@ -1489,6 +1489,24 @@ void TestLanguage::jsImportUsedInMultipleScopes() QVERIFY(!exceptionCaught); } +void TestLanguage::moduleMergingVariantValues() +{ + bool exceptionCaught = false; + try { + SetupProjectParameters params = defaultParameters; + params.setProjectFilePath + (testProject("module-merging-variant-values/module-merging-variant-values.qbs")); + params.expandBuildConfiguration(); + const TopLevelProjectPtr project = loader->loadProject(params); + QVERIFY(!!project); + QCOMPARE(int(project->products.size()), 2); + } catch (const ErrorInfo &e) { + exceptionCaught = true; + qDebug() << e.toString(); + } + QCOMPARE(exceptionCaught, false); +} + void TestLanguage::modulePrioritizationBySearchPath_data() { QTest::addColumn<QStringList>("searchPaths"); diff --git a/tests/auto/language/tst_language.h b/tests/auto/language/tst_language.h index b125b79a2..aab04ca29 100644 --- a/tests/auto/language/tst_language.h +++ b/tests/auto/language/tst_language.h @@ -119,6 +119,7 @@ private slots: void jsExtensions(); void jsImportUsedInMultipleScopes_data(); void jsImportUsedInMultipleScopes(); + void moduleMergingVariantValues(); void modulePrioritizationBySearchPath_data(); void modulePrioritizationBySearchPath(); void moduleProperties_data(); |