aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2017-08-04 15:16:45 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2017-08-14 08:17:28 +0000
commitc83ae7c3c01e17e00eff9a8aaf08807702578227 (patch)
treed6f15f2e70be05ff99f9793b0e64cb12e40c5271
parent3255da1a9809f10ffa73f15a39977a086d1e4299 (diff)
Add autotest checking that module loading respects property overrides
Change-Id: I938cb7a27d1bcc5cd9885a3aae7b5a076edb9ef2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--tests/auto/language/testdata/modules/multiple-backends/backend1.qbs6
-rw-r--r--tests/auto/language/testdata/modules/multiple-backends/backend2.qbs6
-rw-r--r--tests/auto/language/testdata/overridden-properties-and-prototypes.qbs6
-rw-r--r--tests/auto/language/tst_language.cpp30
-rw-r--r--tests/auto/language/tst_language.h2
5 files changed, 50 insertions, 0 deletions
diff --git a/tests/auto/language/testdata/modules/multiple-backends/backend1.qbs b/tests/auto/language/testdata/modules/multiple-backends/backend1.qbs
new file mode 100644
index 000000000..011f96af8
--- /dev/null
+++ b/tests/auto/language/testdata/modules/multiple-backends/backend1.qbs
@@ -0,0 +1,6 @@
+import qbs
+
+Module {
+ condition: qbs.targetOS.contains("os1")
+ property string prop: "backend 1"
+}
diff --git a/tests/auto/language/testdata/modules/multiple-backends/backend2.qbs b/tests/auto/language/testdata/modules/multiple-backends/backend2.qbs
new file mode 100644
index 000000000..1d2d817f7
--- /dev/null
+++ b/tests/auto/language/testdata/modules/multiple-backends/backend2.qbs
@@ -0,0 +1,6 @@
+import qbs
+
+Module {
+ condition: qbs.targetOS.contains("os2")
+ property string prop: "backend 2"
+}
diff --git a/tests/auto/language/testdata/overridden-properties-and-prototypes.qbs b/tests/auto/language/testdata/overridden-properties-and-prototypes.qbs
new file mode 100644
index 000000000..d87611d7c
--- /dev/null
+++ b/tests/auto/language/testdata/overridden-properties-and-prototypes.qbs
@@ -0,0 +1,6 @@
+import qbs
+
+Product {
+ name: "p"
+ Depends { name: "multiple-backends" }
+}
diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp
index 380d23669..9964c7055 100644
--- a/tests/auto/language/tst_language.cpp
+++ b/tests/auto/language/tst_language.cpp
@@ -1730,6 +1730,36 @@ void TestLanguage::outerInGroup()
QCOMPARE(exceptionCaught, false);
}
+void TestLanguage::overriddenPropertiesAndPrototypes()
+{
+ bool exceptionCaught = false;
+ try {
+ QFETCH(QString, osName);
+ QFETCH(QString, backendName);
+ SetupProjectParameters params = defaultParameters;
+ params.setProjectFilePath(testProject("overridden-properties-and-prototypes.qbs"));
+ params.setOverriddenValues({std::make_pair("modules.qbs.targetOS", osName)});
+ TopLevelProjectConstPtr project = loader->loadProject(params);
+ QVERIFY(project);
+ QCOMPARE(project->products.count(), 1);
+ QCOMPARE(project->products.first()->moduleProperties->moduleProperty(
+ "multiple-backends", "prop").toString(), backendName);
+ }
+ catch (const ErrorInfo &e) {
+ exceptionCaught = true;
+ qDebug() << e.toString();
+ }
+ QCOMPARE(exceptionCaught, false);
+}
+
+void TestLanguage::overriddenPropertiesAndPrototypes_data()
+{
+ QTest::addColumn<QString>("osName");
+ QTest::addColumn<QString>("backendName");
+ QTest::newRow("first backend") << "os1" << "backend 1";
+ QTest::newRow("second backend") << "os2" << "backend 2";
+}
+
void TestLanguage::parameterTypes()
{
bool exceptionCaught = false;
diff --git a/tests/auto/language/tst_language.h b/tests/auto/language/tst_language.h
index 62805ec2f..897a5cd3f 100644
--- a/tests/auto/language/tst_language.h
+++ b/tests/auto/language/tst_language.h
@@ -121,6 +121,8 @@ private slots:
void nonRequiredProducts();
void nonRequiredProducts_data();
void outerInGroup();
+ void overriddenPropertiesAndPrototypes();
+ void overriddenPropertiesAndPrototypes_data();
void parameterTypes();
void pathProperties();
void productConditions();