diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2020-03-09 13:08:15 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2020-03-10 08:45:53 +0000 |
commit | add8aab4bdcd07c7b08a13b1be1984ba807bdf50 (patch) | |
tree | fe81cab19adee600fddd38d7c87ee94b4b081e2a /tests | |
parent | 28f5eee070da42bb18e43dc18af6f4494e1fd405 (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.cpp | 34 |
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); } |