aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2016-12-12 11:43:04 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2016-12-13 10:00:51 +0000
commita700217274eda09127820da28bda440e8d89b7c5 (patch)
treeaf18e55f42e802af26809edd864437ed047d49c4
parent4024632de96c3d12dfb787cfd9d2e5783ea8442e (diff)
Fix clangdb autotest on Windows
clang-check.exe does not understand MSVC-style command-line arguments. Change-Id: If273d0a1f2a04918fccb2af06fddbdb3a6568cf1 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
-rw-r--r--tests/auto/blackbox/tst_clangdb.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/auto/blackbox/tst_clangdb.cpp b/tests/auto/blackbox/tst_clangdb.cpp
index 7ef379c71..fbcd01be1 100644
--- a/tests/auto/blackbox/tst_clangdb.cpp
+++ b/tests/auto/blackbox/tst_clangdb.cpp
@@ -186,6 +186,18 @@ void TestClangDb::checkClangDetectsSourceCodeProblems()
if (clangVersion() < Version(3, 7))
QSKIP("This test requires clang-check to be based on at least LLVM 3.7.0.");
+ // clang-check.exe does not understand MSVC command-line syntax
+ qbs::Settings settings((QString()));
+ qbs::Profile profile(profileName(), &settings);
+ if (profile.value("qbs.toolchain").toStringList().contains("msvc")) {
+ QFile commandsFile(relativeBuildDir() + "/compile_commands.json");
+ QVERIFY2(commandsFile.open(QIODevice::ReadWrite), qPrintable(commandsFile.errorString()));
+ QByteArray data = commandsFile.readAll();
+ data.replace("/D", "-D");
+ commandsFile.resize(0);
+ commandsFile.write(data);
+ }
+
arguments = QStringList() << "-analyze" << "-p" << relativeBuildDir() << sourceFilePath;
QVERIFY(runProcess(executable, arguments, stdErr, stdOut) == 0);
const QString output = QString::fromLocal8Bit(stdErr);