diff --git a/src/slic3r/GUI/Jobs/ThreadSafeQueue.hpp b/src/slic3r/GUI/Jobs/ThreadSafeQueue.hpp index 14714b2eac..94c63a0fd5 100644 --- a/src/slic3r/GUI/Jobs/ThreadSafeQueue.hpp +++ b/src/slic3r/GUI/Jobs/ThreadSafeQueue.hpp @@ -118,7 +118,8 @@ public: void clear() { std::lock_guard lk{m_mutex}; - while (!m_queue.empty()) m_queue.pop(); + while (!m_queue.empty()) + m_queue.pop(); } }; diff --git a/tests/slic3rutils/CMakeLists.txt b/tests/slic3rutils/CMakeLists.txt index ac506e9756..f207916f67 100644 --- a/tests/slic3rutils/CMakeLists.txt +++ b/tests/slic3rutils/CMakeLists.txt @@ -18,6 +18,6 @@ if (WIN32) endif() # catch_discover_tests(${_TEST_NAME}_tests TEST_PREFIX "${_TEST_NAME}: ") -set(_catch_args "exclude:[NotWorking]") +set(_catch_args "exclude:[NotWorking];-s") list(APPEND _catch_args "${CATCH_EXTRA_ARGS}") add_test(${_TEST_NAME}_tests ${_TEST_NAME}_tests ${_catch_args}) diff --git a/tests/slic3rutils/slic3r_jobs_tests.cpp b/tests/slic3rutils/slic3r_jobs_tests.cpp index b0d01d2edd..2888ef1a6e 100644 --- a/tests/slic3rutils/slic3r_jobs_tests.cpp +++ b/tests/slic3rutils/slic3r_jobs_tests.cpp @@ -20,6 +20,14 @@ struct Progress: Slic3r::ProgressIndicator { using TestClasses = std::tuple< Slic3r::GUI::UIThreadWorker, Slic3r::GUI::BoostThreadWorker >; +TEMPLATE_LIST_TEST_CASE("Empty worker should not block when queried for idle", "[Jobs]", TestClasses) { + TestType worker{std::make_unique()}; + + worker.wait_for_idle(); + + REQUIRE(worker.is_idle()); +} + TEMPLATE_LIST_TEST_CASE("Empty worker should not do anything", "[Jobs]", TestClasses) { TestType worker{std::make_unique()};