diff options
author | Christian Kandeler <christian.kandeler@digia.com> | 2014-05-22 12:01:14 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-05-23 13:59:09 +0200 |
commit | 0da3f04e71f6f77f47b10fef6736b1415b1960d2 (patch) | |
tree | 85d152e7f16838ca32ad1cbc8e8b07029a62e855 /src/lib/corelib/tools/tst_tools.cpp | |
parent | e00b6c86cece5752c53f78bb439a1a21db5b7674 (diff) |
Sanitize the project setup API.
Ever since we introduced "overridden values", the setter for
the build configuration has been pretty much an empty shell, containing
only the build variant and the profile. We now make that explicit,
resulting in a less confusing API that does not expect the caller to
know how to encode profile and build variant information in a QVariantMap.
Change-Id: I60183fc1884a884c9ceba34d7eb460c261be47ca
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/corelib/tools/tst_tools.cpp')
-rw-r--r-- | src/lib/corelib/tools/tst_tools.cpp | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/lib/corelib/tools/tst_tools.cpp b/src/lib/corelib/tools/tst_tools.cpp index 34571d7e3..6fe604925 100644 --- a/src/lib/corelib/tools/tst_tools.cpp +++ b/src/lib/corelib/tools/tst_tools.cpp @@ -123,25 +123,31 @@ void TestTools::testProfiles() void TestTools::testBuildConfigMerging() { - QVariantMap buildConfigMap; - buildConfigMap.insert(QLatin1String("topLevelKey"), QLatin1String("topLevelValue")); - buildConfigMap.insert(QLatin1String("qbs.toolchain"), QLatin1String("gcc")); - buildConfigMap.insert(QLatin1String("qbs.architecture"), - QLatin1String("Jean-Claude Pillemann")); - buildConfigMap.insert(QLatin1String("cpp.treatWarningsAsErrors"), true); + Settings settings((QString())); + Profile profile(QLatin1String("tst_tools_profile"), &settings); // TODO: Make sure it's removed afterwards. + profile.setValue(QLatin1String("topLevelKey"), QLatin1String("topLevelValue")); + profile.setValue(QLatin1String("qbs.toolchain"), QLatin1String("gcc")); + profile.setValue(QLatin1String("qbs.architecture"), + QLatin1String("Jean-Claude Pillemann")); + profile.setValue(QLatin1String("cpp.treatWarningsAsErrors"), true); QVariantMap overrideMap; overrideMap.insert(QLatin1String("qbs.toolchain"), QLatin1String("clang")); SetupProjectParameters params; - params.setBuildConfiguration(buildConfigMap); + params.setTopLevelProfile(profile.name()); + params.setBuildVariant(QLatin1String("debug")); params.setOverriddenValues(overrideMap); + const ErrorInfo error = params.expandBuildConfiguration(&settings); + QVERIFY2(!error.hasError(), qPrintable(error.toString())); const QVariantMap finalMap = params.finalBuildConfigurationTree(); QCOMPARE(finalMap.count(), 3); QCOMPARE(finalMap.value(QLatin1String("topLevelKey")).toString(), QString::fromLatin1("topLevelValue")); const QVariantMap finalQbsMap = finalMap.value(QLatin1String("qbs")).toMap(); - QCOMPARE(finalQbsMap.count(), 2); + QCOMPARE(finalQbsMap.count(), 3); QCOMPARE(finalQbsMap.value(QLatin1String("toolchain")).toString(), QString::fromLatin1("clang")); + QCOMPARE(finalQbsMap.value(QLatin1String("buildVariant")).toString(), + QString::fromLatin1("debug")); QCOMPARE(finalQbsMap.value(QLatin1String("architecture")).toString(), QString::fromLatin1("Jean-Claude Pillemann")); const QVariantMap finalCppMap = finalMap.value(QLatin1String("cpp")).toMap(); |