diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2017-05-31 14:11:22 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2017-05-31 19:01:00 +0000 |
commit | 85881f7fc12040caa0325612c1ce54299dedec8b (patch) | |
tree | 8cd50dfebd68722ea980bae1ae26d5761bca50be | |
parent | ed342b0beda9ff171906043bac99b82105156cb5 (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.cpp | 39 | ||||
-rw-r--r-- | tests/auto/language/testdata/moduleproperties.qbs | 17 |
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 + } } |