diff options
Diffstat (limited to 'src/plugins/autotest/ctest/ctestoutputreader.cpp')
-rw-r--r-- | src/plugins/autotest/ctest/ctestoutputreader.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/plugins/autotest/ctest/ctestoutputreader.cpp b/src/plugins/autotest/ctest/ctestoutputreader.cpp index 0784a88b4e..cc8a8a1bbd 100644 --- a/src/plugins/autotest/ctest/ctestoutputreader.cpp +++ b/src/plugins/autotest/ctest/ctestoutputreader.cpp @@ -81,7 +81,8 @@ void CTestOutputReader::processOutputLine(const QByteArray &outputLine) static const QRegularExpression testProject("^Test project (.*)$"); static const QRegularExpression testCase("^(test \\d+)|( Start\\s+\\d+: .*)$"); static const QRegularExpression testResult("^\\s*\\d+/\\d+ Test\\s+#\\d+: (.*) (\\.+)\\s*" - "(Passed|\\*\\*\\*Failed)\\s+(.*) sec$"); + "(Passed|\\*\\*\\*Failed|" + ".*\\*\\*\\*Exception:.*)\\s+(.*) sec$"); static const QRegularExpression summary("^\\d+% tests passed, (\\d+) tests failed " "out of (\\d+)"); static const QRegularExpression summaryTime("^Total Test time .* =\\s+(.*) sec$"); @@ -110,7 +111,13 @@ void CTestOutputReader::processOutputLine(const QByteArray &outputLine) } else if (ExactMatch match = testResult.match(line)) { m_description = match.captured(); m_testName = match.captured(1); - m_result = (match.captured(3) == "Passed") ? ResultType::Pass : ResultType::Fail; + const QString resultType = match.captured(3); + if (resultType == "Passed") + m_result = ResultType::Pass; + else if (resultType == "***Failed") + m_result = ResultType::Fail; + else + m_result = ResultType::MessageFatal; } else if (ExactMatch match = summary.match(line)) { if (!m_testName.isEmpty()) sendCompleteInformation(); |