aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/auto/api/testdata/nonexistingprojectproperties/invalidaccessfromproduct.qbs3
-rw-r--r--tests/auto/api/testdata/nonexistingprojectproperties/project.qbs3
-rw-r--r--tests/auto/api/tst_api.cpp35
-rw-r--r--tests/auto/api/tst_api.h2
4 files changed, 43 insertions, 0 deletions
diff --git a/tests/auto/api/testdata/nonexistingprojectproperties/invalidaccessfromproduct.qbs b/tests/auto/api/testdata/nonexistingprojectproperties/invalidaccessfromproduct.qbs
new file mode 100644
index 000000000..c024b3c2c
--- /dev/null
+++ b/tests/auto/api/testdata/nonexistingprojectproperties/invalidaccessfromproduct.qbs
@@ -0,0 +1,3 @@
+import qbs
+
+Project { Product { type: project.blubb } }
diff --git a/tests/auto/api/testdata/nonexistingprojectproperties/project.qbs b/tests/auto/api/testdata/nonexistingprojectproperties/project.qbs
new file mode 100644
index 000000000..7d453a671
--- /dev/null
+++ b/tests/auto/api/testdata/nonexistingprojectproperties/project.qbs
@@ -0,0 +1,3 @@
+import qbs
+
+Project { }
diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp
index 7c16f38fa..6cd7d608c 100644
--- a/tests/auto/api/tst_api.cpp
+++ b/tests/auto/api/tst_api.cpp
@@ -172,6 +172,41 @@ void TestApi::listBuildSystemFiles()
+ QLatin1String("/subproject2/subproject3/subproject3.qbs")));
}
+void TestApi::nonexistingProjectPropertyFromProduct()
+{
+ qbs::SetupProjectParameters setupParams = defaultSetupParameters();
+ const QString projectDir
+ = QDir::cleanPath(QLatin1String(SRCDIR "/testdata/nonexistingprojectproperties"));
+ const QString topLevelProjectFile = projectDir + QLatin1String("/invalidaccessfromproduct.qbs");
+ setupParams.setProjectFilePath(topLevelProjectFile);
+ QScopedPointer<qbs::SetupProjectJob> job(qbs::Project::setupProject(setupParams,
+ m_logSink, 0));
+ waitForFinished(job.data());
+ QEXPECT_FAIL("", "QBS-432", Abort);
+ QVERIFY(job->error().hasError());
+ QVERIFY2(job->error().toString().contains(QLatin1String("blubb")),
+ qPrintable(job->error().toString()));
+}
+
+void TestApi::nonexistingProjectPropertyFromCommandLine()
+{
+ qbs::SetupProjectParameters setupParams = defaultSetupParameters();
+ const QString projectDir
+ = QDir::cleanPath(QLatin1String(SRCDIR "/testdata/nonexistingprojectproperties"));
+ const QString topLevelProjectFile = projectDir + QLatin1String("/project.qbs");
+ setupParams.setProjectFilePath(topLevelProjectFile);
+ QVariantMap projectProperties;
+ projectProperties.insert(QLatin1String("project.blubb"), QLatin1String("true"));
+ setupParams.setOverriddenValues(projectProperties);
+ 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()));
+}
+
qbs::SetupProjectParameters TestApi::defaultSetupParameters() const
{
qbs::SetupProjectParameters setupParams;
diff --git a/tests/auto/api/tst_api.h b/tests/auto/api/tst_api.h
index 3ca6935ab..707ccf85e 100644
--- a/tests/auto/api/tst_api.h
+++ b/tests/auto/api/tst_api.h
@@ -50,6 +50,8 @@ private slots:
void fileTagsFilterOverride();
void installableFiles();
void listBuildSystemFiles();
+ void nonexistingProjectPropertyFromProduct();
+ void nonexistingProjectPropertyFromCommandLine();
private:
qbs::SetupProjectParameters defaultSetupParameters() const;