aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/autotest/boost/boosttestoutputreader.cpp6
-rw-r--r--src/plugins/autotest/testresultmodel.cpp9
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;
}