diff options
-rw-r--r-- | src/plugins/autotest/boost/boosttestoutputreader.cpp | 6 | ||||
-rw-r--r-- | src/plugins/autotest/testresultmodel.cpp | 9 |
2 files changed, 7 insertions, 8 deletions
diff --git a/src/plugins/autotest/boost/boosttestoutputreader.cpp b/src/plugins/autotest/boost/boosttestoutputreader.cpp index 84cd3e45a08..551b19fea02 100644 --- a/src/plugins/autotest/boost/boosttestoutputreader.cpp +++ b/src/plugins/autotest/boost/boosttestoutputreader.cpp @@ -140,6 +140,7 @@ void BoostTestOutputReader::handleMessageMatch(const QRegularExpressionMatch &ma if (m_currentTest.isEmpty() || m_logLevel > LogLevel::UnitScope) m_currentTest = caseFromContent(content); m_result = ResultType::MessageFatal; + ++m_summary[ResultType::MessageFatal]; m_description = content; } else if (content.startsWith("last checkpoint:")) { if (m_currentTest.isEmpty() || m_logLevel > LogLevel::UnitScope) @@ -337,8 +338,9 @@ void BoostTestOutputReader::processOutputLine(const QByteArray &outputLine) sendCompleteInformation(); BoostTestResult *result = new BoostTestResult(id(), m_projectFile, QString()); int failed = match.captured(1).toInt(); + int fatals = m_summary.value(ResultType::MessageFatal); QString txt = tr("%1 failures detected in %2.").arg(failed).arg(match.captured(3)); - int passed = (m_testCaseCount != -1) ? m_testCaseCount - failed : -1; + int passed = qMax(0, m_testCaseCount - failed); if (m_testCaseCount != -1) txt.append(' ').append(tr("%1 tests passed.").arg(passed)); result->setDescription(txt); @@ -346,7 +348,7 @@ void BoostTestOutputReader::processOutputLine(const QByteArray &outputLine) reportResult(TestResultPtr(result)); if (m_reportLevel == ReportLevel::Confirm) { // for the final summary m_summary[ResultType::Pass] += passed; - m_summary[ResultType::Fail] += failed; + m_summary[ResultType::Fail] += failed - fatals; } m_testCaseCount = -1; return; diff --git a/src/plugins/autotest/testresultmodel.cpp b/src/plugins/autotest/testresultmodel.cpp index 7ea5f7d9d8f..cd38cfea762 100644 --- a/src/plugins/autotest/testresultmodel.cpp +++ b/src/plugins/autotest/testresultmodel.cpp @@ -376,13 +376,10 @@ int TestResultModel::resultTypeCount(ResultType type) const { int result = 0; - for (const auto &resultsForId : m_testResultCount.values()) - result += resultsForId.value(type, 0); - for (const auto &id : m_reportedSummary.keys()) { - if (int counted = m_testResultCount.value(id).value(type)) - result -= counted; - result += m_reportedSummary[id].value(type); + // if we got a result count from the framework prefer that over our counted results + int reported = m_reportedSummary[id].value(type); + result += reported != 0 ? reported : m_testResultCount.value(id).value(type); } return result; } |