aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/api
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2014-07-15 13:40:58 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2014-07-16 18:02:00 +0200
commit53a95b6f16788c6c248bb695b9ce9ad5e3a031ab (patch)
tree42bcb4bbe1ec84e6836fa8d61fd94abb8a7c26f0 /tests/auto/api
parent68db620a139f7dde967750f577924696405c8104 (diff)
Add missing metatype registration.
The code path where this is relevant has apparently never been taken, so add an autotest as well (and fix the wording of the error message). Change-Id: I314f1cb888264d30920a58f4e9cbbbf01fbcc4e6 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'tests/auto/api')
-rw-r--r--tests/auto/api/testdata/project-locking/project.qbs4
-rw-r--r--tests/auto/api/tst_api.cpp22
-rw-r--r--tests/auto/api/tst_api.h1
3 files changed, 27 insertions, 0 deletions
diff --git a/tests/auto/api/testdata/project-locking/project.qbs b/tests/auto/api/testdata/project-locking/project.qbs
new file mode 100644
index 000000000..e08b008bc
--- /dev/null
+++ b/tests/auto/api/testdata/project-locking/project.qbs
@@ -0,0 +1,4 @@
+import qbs
+
+Project {
+}
diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp
index 53674306a..ef3cf9801 100644
--- a/tests/auto/api/tst_api.cpp
+++ b/tests/auto/api/tst_api.cpp
@@ -730,6 +730,28 @@ void TestApi::nonexistingProjectPropertyFromCommandLine()
qPrintable(job->error().toString()));
}
+void TestApi::projectLocking()
+{
+ qbs::SetupProjectParameters setupParams = defaultSetupParameters();
+ const QString projectDirPath = QDir::cleanPath(m_workingDataDir + "/project-locking");
+ setupParams.setProjectFilePath(projectDirPath + "/project.qbs");
+ QScopedPointer<qbs::SetupProjectJob> setupJob(qbs::Project().setupProject(setupParams,
+ m_logSink, 0));
+ waitForFinished(setupJob.data());
+ QVERIFY2(!setupJob->error().hasError(), qPrintable(setupJob->error().toString()));
+ qbs::Project project = setupJob->project();
+ setupJob.reset(project.setupProject(setupParams, m_logSink, 0));
+ QScopedPointer<qbs::SetupProjectJob> setupJob2(project.setupProject(setupParams,
+ m_logSink, 0));
+ waitForFinished(setupJob2.data());
+ QVERIFY(setupJob2->error().hasError());
+ QVERIFY2(setupJob2->error().toString()
+ .contains("Cannot start a job while another one is in progress."),
+ qPrintable(setupJob2->error().toString()));
+ waitForFinished(setupJob.data());
+ QVERIFY2(!setupJob->error().hasError(), qPrintable(setupJob->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 5e75218ba..756eb1ed3 100644
--- a/tests/auto/api/tst_api.h
+++ b/tests/auto/api/tst_api.h
@@ -61,6 +61,7 @@ private slots:
void multiArch();
void nonexistingProjectPropertyFromProduct();
void nonexistingProjectPropertyFromCommandLine();
+ void projectLocking();
void references();
void sourceFileInBuildDir();