aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@theqtcompany.com>2015-05-21 10:21:15 +0200
committerChristian Kandeler <christian.kandeler@theqtcompany.com>2015-05-21 09:16:53 +0000
commit666df460147a09edc1efd84be56df7a1f2f06faf (patch)
tree850a4f48a52bdaae863b7ec9fb59494885714e48 /tests
parent07fbba577001185633e0a8192459459e445e022c (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')
-rw-r--r--tests/auto/api/tst_api.cpp24
-rw-r--r--tests/auto/api/tst_api.h4
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;