aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2017-05-31 14:11:22 +0200
committerJoerg Bornemann <joerg.bornemann@qt.io>2017-05-31 19:01:00 +0000
commit85881f7fc12040caa0325612c1ce54299dedec8b (patch)
tree8cd50dfebd68722ea980bae1ae26d5761bca50be
parented342b0beda9ff171906043bac99b82105156cb5 (diff)
Add failing autotest for QBS-1117
Task-number: QBS-1117 Change-Id: If8b0e2edf6c36edec0410c90359505c5ed6c691f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
-rw-r--r--src/lib/corelib/language/tst_language.cpp39
-rw-r--r--tests/auto/language/testdata/moduleproperties.qbs17
2 files changed, 40 insertions, 16 deletions
diff --git a/src/lib/corelib/language/tst_language.cpp b/src/lib/corelib/language/tst_language.cpp
index d0bb76fd0..4bba46293 100644
--- a/src/lib/corelib/language/tst_language.cpp
+++ b/src/lib/corelib/language/tst_language.cpp
@@ -1192,44 +1192,51 @@ void TestLanguage::jsImportUsedInMultipleScopes()
void TestLanguage::moduleProperties_data()
{
QTest::addColumn<QString>("propertyName");
- QTest::addColumn<QStringList>("expectedValues");
- QTest::newRow("init") << QString() << QStringList();
+ QTest::addColumn<QVariant>("expectedValue");
+ QTest::newRow("init") << QString() << QVariant();
QTest::newRow("merge_lists")
<< "defines"
- << (QStringList() << "THE_PRODUCT" << "QT_CORE" << "QT_GUI" << "QT_NETWORK");
+ << QVariant(QStringList() << "THE_PRODUCT" << "QT_CORE" << "QT_GUI" << "QT_NETWORK");
QTest::newRow("merge_lists_and_values")
<< "defines"
- << (QStringList() << "THE_PRODUCT" << "QT_CORE" << "QT_GUI" << "QT_NETWORK");
+ << QVariant(QStringList() << "THE_PRODUCT" << "QT_CORE" << "QT_GUI" << "QT_NETWORK");
QTest::newRow("merge_lists_with_duplicates")
<< "cxxFlags"
- << (QStringList() << "-foo" << "BAR" << "-foo" << "BAZ");
+ << QVariant(QStringList() << "-foo" << "BAR" << "-foo" << "BAZ");
QTest::newRow("merge_lists_with_prototype_values")
<< "rpaths"
- << (QStringList() << "/opt/qt/lib" << "$ORIGIN");
+ << QVariant(QStringList() << "/opt/qt/lib" << "$ORIGIN");
QTest::newRow("list_property_that_references_product")
<< "listProp"
- << (QStringList() << "x" << "123");
+ << QVariant(QStringList() << "x" << "123");
QTest::newRow("list_property_depending_on_overridden_property")
<< "listProp2"
- << (QStringList() << "PRODUCT_STUFF" << "DEFAULT_STUFF" << "EXTRA_STUFF");
- QTest::newRow("overridden_list_property") << "listProp" << (QStringList() << "PRODUCT_STUFF");
- QTest::newRow("cleanup") << QString() << QStringList();
+ << QVariant(QStringList() << "PRODUCT_STUFF" << "DEFAULT_STUFF" << "EXTRA_STUFF");
+ QTest::newRow("overridden_list_property")
+ << "listProp"
+ << QVariant(QStringList() << "PRODUCT_STUFF");
+ QTest::newRow("shadowed-list-property")
+ << "defines"
+ << QVariant(QString("MyProject_shadowed-list-property"));
+ QTest::newRow("shadowed-scalar-property")
+ << "someString"
+ << QVariant(QString("MyProject_shadowed-scalar-property"));
+ QTest::newRow("cleanup") << QString() << QVariant();
}
void TestLanguage::moduleProperties()
{
HANDLE_INIT_CLEANUP_DATATAGS("moduleproperties.qbs");
QFETCH(QString, propertyName);
- QFETCH(QStringList, expectedValues);
+ QFETCH(QVariant, expectedValue);
QHash<QString, ResolvedProductPtr> products = productsFromProject(project);
const QString productName = QString::fromLocal8Bit(QTest::currentDataTag());
ResolvedProductPtr product = products.value(productName);
QVERIFY(product);
- QVariant values = product->moduleProperties->moduleProperty("dummy", propertyName);
- QStringList valueStrings;
- foreach (const QVariant &v, values.toList())
- valueStrings += v.toString();
- QCOMPARE(valueStrings, expectedValues);
+ const QVariant value = product->moduleProperties->moduleProperty("dummy", propertyName);
+ QEXPECT_FAIL("shadowed-list-property", "QBS-1117", Continue);
+ QEXPECT_FAIL("shadowed-scalar-property", "QBS-1117", Continue);
+ QCOMPARE(value, expectedValue);
}
void TestLanguage::modulePropertiesInGroups()
diff --git a/tests/auto/language/testdata/moduleproperties.qbs b/tests/auto/language/testdata/moduleproperties.qbs
index 16fe2ea74..8ef1a9b72 100644
--- a/tests/auto/language/testdata/moduleproperties.qbs
+++ b/tests/auto/language/testdata/moduleproperties.qbs
@@ -1,6 +1,9 @@
import qbs 1.0
Project {
+ name: "MyProject"
+ property string projectName: name
+
Product {
name: "merge_lists"
Depends { name: "dummyqt"; submodules: ["gui", "network"] }
@@ -47,4 +50,18 @@ Project {
dummy.listProp: ["PRODUCT_STUFF"]
}
}
+
+ Product {
+ name: "shadowed-list-property"
+ property string productName: name
+ Depends { name: "dummy" }
+ dummy.defines: [projectName, productName]
+ }
+
+ Product {
+ name: "shadowed-scalar-property"
+ property string productName: name
+ Depends { name: "dummy" }
+ dummy.someString: projectName + "_" + productName
+ }
}