From c740cd3cb19809cb2eb38c15d7746d170c78f894 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 3 Sep 2024 09:32:24 +0200 Subject: [PATCH] AutoTest: Support durations for all frameworks Even if the test framework has no builtin support for displaying durations we are able to give at least an approximation of the used time. So, use the process execution duration as proximity for the duration of all tests of an executable to avoid displaying even more wrong summaries (when mixing frameworks with and without duration support). This enables the summary duration for Boost tests. Task-number: QTCREATORBUG-31242 Change-Id: Ifa00038150cc35b66b3f20cc617e15f98b7264ca Reviewed-by: David Schulz Reviewed-by: Christian Stenger --- src/plugins/autotest/testoutputreader.h | 3 +-- src/plugins/autotest/testrunner.cpp | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/plugins/autotest/testoutputreader.h b/src/plugins/autotest/testoutputreader.h index f615f5a2056..e102131e6c1 100644 --- a/src/plugins/autotest/testoutputreader.h +++ b/src/plugins/autotest/testoutputreader.h @@ -25,8 +25,7 @@ public: int disabledTests() const { return m_disabled; } bool hasSummary() const { return !m_summary.isEmpty(); } QHash summary() const { return m_summary; } - bool hasDuration() const { return m_executionDuration.has_value(); } - int duration() const { return m_executionDuration.value(); } + std::optional duration() const { return m_executionDuration; } void setId(const QString &id) { m_id = id; } QString id() const { return m_id; } diff --git a/src/plugins/autotest/testrunner.cpp b/src/plugins/autotest/testrunner.cpp index f794e45eef4..b92d503b4fb 100644 --- a/src/plugins/autotest/testrunner.cpp +++ b/src/plugins/autotest/testrunner.cpp @@ -454,8 +454,8 @@ void TestRunner::runTestsHelper() emit hadDisabledTests(disabled); if (testStorage->m_outputReader->hasSummary()) emit reportSummary(testStorage->m_outputReader->id(), testStorage->m_outputReader->summary()); - if (testStorage->m_outputReader->hasDuration()) - emit reportDuration(testStorage->m_outputReader->duration()); + emit reportDuration(testStorage->m_outputReader->duration().value_or( + process.processDuration().count())); testStorage->m_outputReader->resetCommandlineColor(); }