diff options
author | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-05-21 10:21:15 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-05-21 09:16:53 +0000 |
commit | 666df460147a09edc1efd84be56df7a1f2f06faf (patch) | |
tree | 850a4f48a52bdaae863b7ec9fb59494885714e48 /tests/auto/api | |
parent | 07fbba577001185633e0a8192459459e445e022c (diff) |
Don't assume that project.qbsSearchPaths must come from a project file.
Can also be set on the command line.
Task-number: QBS-810
Change-Id: I9907bdecd9be4b118d979b551fd66cf70b7dbc8b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'tests/auto/api')
-rw-r--r-- | tests/auto/api/tst_api.cpp | 24 | ||||
-rw-r--r-- | tests/auto/api/tst_api.h | 4 |
2 files changed, 25 insertions, 3 deletions
diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp index a3eb9dfa7..657ffc38d 100644 --- a/tests/auto/api/tst_api.cpp +++ b/tests/auto/api/tst_api.cpp @@ -968,7 +968,26 @@ void TestApi::infiniteLoopResolving() void TestApi::inheritQbsSearchPaths() { - const qbs::ErrorInfo errorInfo = doBuildProject("inherit-qbs-search-paths/prj.qbs"); + const QString projectFilePath = "inherit-qbs-search-paths/prj.qbs"; + qbs::ErrorInfo errorInfo = doBuildProject(projectFilePath); + VERIFY_NO_ERROR(errorInfo); + + waitForNewTimestamp(); + QFile projectFile(m_workingDataDir + '/' + projectFilePath); + QVERIFY(projectFile.open(QIODevice::ReadWrite)); + QByteArray content = projectFile.readAll(); + content.replace("qbsSearchPaths: \"subdir\"", "//qbsSearchPaths: \"subdir\""); + projectFile.resize(0); + projectFile.write(content); + projectFile.close(); + errorInfo = doBuildProject(projectFilePath); + QVERIFY(errorInfo.hasError()); + QVERIFY2(errorInfo.toString().contains("Product dependency 'bli' not found"), + qPrintable(errorInfo.toString())); + + QVariantMap overriddenValues; + overriddenValues.insert("project.qbsSearchPaths", QStringList() << "subdir"); + errorInfo = doBuildProject(projectFilePath, 0, 0, 0, qbs::BuildOptions(), overriddenValues); VERIFY_NO_ERROR(errorInfo); } @@ -1649,9 +1668,10 @@ void TestApi::uic() qbs::ErrorInfo TestApi::doBuildProject(const QString &projectFilePath, QObject *buildDescriptionReceiver, QObject *procResultReceiver, QObject *taskReceiver, - const qbs::BuildOptions &options) + const qbs::BuildOptions &options, const QVariantMap overriddenValues) { qbs::SetupProjectParameters params = defaultSetupParameters(projectFilePath); + params.setOverriddenValues(overriddenValues); params.setDryRun(options.dryRun()); const QScopedPointer<qbs::SetupProjectJob> setupJob(qbs::Project().setupProject(params, m_logSink, 0)); diff --git a/tests/auto/api/tst_api.h b/tests/auto/api/tst_api.h index 21ee9da7d..82b7a3da9 100644 --- a/tests/auto/api/tst_api.h +++ b/tests/auto/api/tst_api.h @@ -34,6 +34,7 @@ #include <tools/buildoptions.h> #include <QObject> +#include <QVariant> namespace qbs { class ErrorInfo; @@ -123,7 +124,8 @@ private: QObject *buildDescriptionReceiver = 0, QObject *procResultReceiver = 0, QObject *taskReceiver = 0, - const qbs::BuildOptions &options = qbs::BuildOptions()); + const qbs::BuildOptions &options = qbs::BuildOptions(), + const QVariantMap overriddenValues = QVariantMap()); LogSink * const m_logSink; const QString m_sourceDataDir; |