aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2020-03-09 13:08:15 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2020-03-10 08:45:53 +0000
commitadd8aab4bdcd07c7b08a13b1be1984ba807bdf50 (patch)
treefe81cab19adee600fddd38d7c87ee94b4b081e2a /tests
parent28f5eee070da42bb18e43dc18af6f4494e1fd405 (diff)
Fix emptyProfile autotest
It was broken for e.g. mingw. Prevent future failures by simply forwarding qbs.toolchainType from the profile. Also forward the toolchain install path for non-MSVC profiles if it's not in the PATH. Change-Id: I73a799387af2e746ebdd634171129f9d201478db Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp34
1 files changed, 21 insertions, 13 deletions
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index 6205a0ed1..fa5ca963b 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -3545,21 +3545,29 @@ void TestBlackbox::emptyProfile()
const SettingsPtr s = settings();
const Profile buildProfile(profileName(), s.get());
- const QStringList toolchain = profileToolchain(buildProfile);
-
+ bool isMsvc = false;
+ const auto toolchainType = buildProfile.value(QStringLiteral("qbs.toolchainType")).toString();
QbsRunParameters params;
params.profile = "none";
- if (toolchain.contains(QLatin1String("clang-cl")))
- params.arguments = QStringList{QStringLiteral("qbs.toolchainType:clang-cl")};
- else if (toolchain.contains(QLatin1String("msvc")))
- params.arguments = QStringList{QStringLiteral("qbs.toolchainType:msvc")};
- else if (toolchain.contains(QLatin1String("xcode")))
- params.arguments = QStringList{QStringLiteral("qbs.toolchainType:xcode")};
- else if (toolchain.contains(QLatin1String("clang")))
- params.arguments = QStringList{QStringLiteral("qbs.toolchainType:clang")};
- else if (toolchain.contains(QLatin1String("gcc")))
- params.arguments = QStringList{QStringLiteral("qbs.toolchainType:gcc")};
-
+ if (!toolchainType.isEmpty()) {
+ params.arguments = QStringList{QStringLiteral("qbs.toolchainType:") + toolchainType};
+ isMsvc = toolchainType == "msvc" || toolchainType == "clang-cl";
+ } else {
+ const auto toolchain = buildProfile.value(QStringLiteral("qbs.toolchain")).toStringList();
+ if (!toolchain.isEmpty()) {
+ params.arguments = QStringList{QStringLiteral("qbs.toolchain:")
+ + toolchain.join(QLatin1Char(','))};
+ isMsvc = toolchainType.contains("msvc");
+ }
+ }
+ if (!isMsvc) {
+ const auto tcPath
+ = buildProfile.value(QStringLiteral("cpp.toolchainInstallPath")).toString();
+ if (!tcPath.isEmpty() && !qEnvironmentVariable("PATH")
+ .split(HostOsInfo::pathListSeparator(), QString::SkipEmptyParts).contains(tcPath)) {
+ params.arguments << QStringLiteral("modules.cpp.toolchainInstallPath:") + tcPath;
+ }
+ }
QCOMPARE(runQbs(params), 0);
}