From c57b06b9e6489b2ef0e2893991edd77eff724051 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 8 Jan 2018 11:21:34 +0100 Subject: [PATCH] AutoTest: Fix noticing crashes on Windows for gtest gtest based tests do not end the QProcess with CrashExit when abort() is triggered but it results in a special exit code. Task-number: QTCREATORBUG-19565 Change-Id: I4ffc67cb43b05406ab79a7b3061e75c88b87ba98 Reviewed-by: David Schulz --- src/plugins/autotest/gtest/gtestoutputreader.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/plugins/autotest/gtest/gtestoutputreader.cpp b/src/plugins/autotest/gtest/gtestoutputreader.cpp index cd6042f0131..cc82bccc1aa 100644 --- a/src/plugins/autotest/gtest/gtestoutputreader.cpp +++ b/src/plugins/autotest/gtest/gtestoutputreader.cpp @@ -27,6 +27,7 @@ #include "gtestresult.h" #include "../testtreemodel.h" #include "../testtreeitem.h" +#include "utils/hostosinfo.h" #include #include @@ -47,6 +48,15 @@ GTestOutputReader::GTestOutputReader(const QFutureInterface &futu , m_executable(testApplication ? testApplication->program() : QString()) , m_projectFile(projectFile) { + // on Windows abort() will result in normal termination, but exit code will be set to 3 + if (Utils::HostOsInfo::isWindowsHost()) { + connect(m_testApplication, + static_cast(&QProcess::finished), + this, [this] (int exitCode, QProcess::ExitStatus /*exitStatus*/) { + if (exitCode == 3) + reportCrash(); + }); + } } void GTestOutputReader::processOutput(const QByteArray &outputLine)