aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/language
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/language')
-rw-r--r--tests/auto/language/testdata/module-merging-variant-values/module-merging-variant-values.qbs7
-rw-r--r--tests/auto/language/testdata/module-merging-variant-values/modules/m1/m1.qbs6
-rw-r--r--tests/auto/language/testdata/module-merging-variant-values/modules/m2/m2.qbs14
-rw-r--r--tests/auto/language/tst_language.cpp18
-rw-r--r--tests/auto/language/tst_language.h1
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();