diff options
author | Christian Kandeler <christian.kandeler@digia.com> | 2014-07-15 13:40:58 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-07-16 18:02:00 +0200 |
commit | 53a95b6f16788c6c248bb695b9ce9ad5e3a031ab (patch) | |
tree | 42bcb4bbe1ec84e6836fa8d61fd94abb8a7c26f0 /tests/auto/api | |
parent | 68db620a139f7dde967750f577924696405c8104 (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.qbs | 4 | ||||
-rw-r--r-- | tests/auto/api/tst_api.cpp | 22 | ||||
-rw-r--r-- | tests/auto/api/tst_api.h | 1 |
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(); |