From e6adca47d36d3a343afc56c4733601984d19285f Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 16 Dec 2022 12:16:39 +0100 Subject: [PATCH] QTest::WatchDog: Extract Method setExpectation() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Keeps the code DRY and enables a follow-up commit to fix QTBUG-109466. Task-number: QTBUG-109466 Change-Id: I2b904ea7b38286b07049524ba63c2c5028e680bb Reviewed-by: MÃ¥rten Nordheim Reviewed-by: Qt CI Bot (cherry picked from commit 17a7e5cfddcbf33ef0fd1c2b7acc65b85159194e) Reviewed-by: Qt Cherry-pick Bot --- src/testlib/qtestcase.cpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 8c52d636960..5c4bd672f46 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -1221,6 +1221,13 @@ class WatchDog : public QThread return false; } + void setExpectation(Expectation e) + { + const auto locker = qt_scoped_lock(mutex); + expecting.store(e, std::memory_order_relaxed); + waitCondition.notify_all(); + } + public: WatchDog() { @@ -1233,26 +1240,18 @@ public: ~WatchDog() { - { - const auto locker = qt_scoped_lock(mutex); - expecting.store(ThreadEnd, std::memory_order_relaxed); - waitCondition.notify_all(); - } + setExpectation(ThreadEnd); wait(); } void beginTest() { - const auto locker = qt_scoped_lock(mutex); - expecting.store(TestFunctionEnd, std::memory_order_relaxed); - waitCondition.notify_all(); + setExpectation(TestFunctionEnd); } void testFinished() { - const auto locker = qt_scoped_lock(mutex); - expecting.store(TestFunctionStart, std::memory_order_relaxed); - waitCondition.notify_all(); + setExpectation(TestFunctionStart); } void run() override