diff options
Diffstat (limited to 'tests/auto/language')
-rw-r--r-- | tests/auto/language/testdata/overridden-variant-property.qbs | 4 | ||||
-rw-r--r-- | tests/auto/language/tst_language.cpp | 20 | ||||
-rw-r--r-- | tests/auto/language/tst_language.h | 1 |
3 files changed, 25 insertions, 0 deletions
diff --git a/tests/auto/language/testdata/overridden-variant-property.qbs b/tests/auto/language/testdata/overridden-variant-property.qbs new file mode 100644 index 000000000..09636d330 --- /dev/null +++ b/tests/auto/language/testdata/overridden-variant-property.qbs @@ -0,0 +1,4 @@ +Product { + name: "p" + property var myObject +} diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp index 2bd5b5de8..be9dfb932 100644 --- a/tests/auto/language/tst_language.cpp +++ b/tests/auto/language/tst_language.cpp @@ -2342,6 +2342,26 @@ void TestLanguage::overriddenPropertiesAndPrototypes_data() QTest::newRow("second backend") << "os2" << "backend 2"; } +void TestLanguage::overriddenVariantProperty() +{ + bool exceptionCaught = false; + try { + SetupProjectParameters params = defaultParameters; + const QVariantMap objectValue{std::make_pair("x", 1), std::make_pair("y", 2)}; + params.setOverriddenValues({std::make_pair("products.p.myObject", objectValue)}); + params.setProjectFilePath(testProject("overridden-variant-property.qbs")); + TopLevelProjectConstPtr project = loader->loadProject(params); + QVERIFY(!!project); + QCOMPARE(project->products.size(), size_t(1)); + QCOMPARE(project->products.front()->productProperties.value("myObject").toMap(), + objectValue); + } catch (const ErrorInfo &e) { + exceptionCaught = true; + qDebug() << e.toString(); + } + QCOMPARE(exceptionCaught, false); +} + void TestLanguage::parameterTypes() { bool exceptionCaught = false; diff --git a/tests/auto/language/tst_language.h b/tests/auto/language/tst_language.h index b2d242bfb..0fa44afe4 100644 --- a/tests/auto/language/tst_language.h +++ b/tests/auto/language/tst_language.h @@ -147,6 +147,7 @@ private slots: void outerInGroup(); void overriddenPropertiesAndPrototypes(); void overriddenPropertiesAndPrototypes_data(); + void overriddenVariantProperty(); void parameterTypes(); void pathProperties(); void productConditions(); |