diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2013-10-30 10:00:19 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2013-10-30 15:56:26 +0100 |
commit | 1cd77e0f21883d3886e05f3ca15f43f862327cb9 (patch) | |
tree | 882a927faa04053e62d16e176fda018e2b2fbdf0 | |
parent | 7960eb7045bb2df04d7bbad42e46c3f559f976cd (diff) |
check property declarations of overridden properties
Now it's an error to pass nonsense like project.blubb:1
on the command line.
Task-number: QBS-431
Change-Id: I1e2128bce953b7acef4abe0fd09808ba1f71d1f9
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
-rw-r--r-- | src/lib/language/moduleloader.cpp | 4 | ||||
-rw-r--r-- | tests/auto/api/tst_api.cpp | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/language/moduleloader.cpp b/src/lib/language/moduleloader.cpp index 40ce8a95f..9c97271b6 100644 --- a/src/lib/language/moduleloader.cpp +++ b/src/lib/language/moduleloader.cpp @@ -1096,6 +1096,10 @@ void ModuleLoader::overrideItemProperties(Item *item, const QString &buildConfig for (QVariantMap::const_iterator it = overridden.constBegin(); it != overridden.constEnd(); ++it) { const PropertyDeclaration decl = item->propertyDeclarations().value(it.key()); + if (!decl.isValid()) { + throw ErrorInfo( + Tr::tr("Unknown property: %1.%2").arg(buildConfigKey, it.key())); + } item->setProperty(it.key(), VariantValue::create(convertToPropertyType(it.value(), decl.type, QStringList(buildConfigKey), it.key()))); diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp index 6cd7d608c..a60d4795e 100644 --- a/tests/auto/api/tst_api.cpp +++ b/tests/auto/api/tst_api.cpp @@ -201,7 +201,6 @@ void TestApi::nonexistingProjectPropertyFromCommandLine() QScopedPointer<qbs::SetupProjectJob> job(qbs::Project::setupProject(setupParams, m_logSink, 0)); waitForFinished(job.data()); - QEXPECT_FAIL("", "QBS-431", Abort); QVERIFY(job->error().hasError()); QVERIFY2(job->error().toString().contains(QLatin1String("blubb")), qPrintable(job->error().toString())); |