diff --git a/modules/core/runners/src/runners.cpp b/modules/core/runners/src/runners.cpp index 6a2bc1bea..15d4eee43 100644 --- a/modules/core/runners/src/runners.cpp +++ b/modules/core/runners/src/runners.cpp @@ -60,6 +60,17 @@ void WorkerTestFailurePrinter::PrintProcessRank() { std::cerr << std::format(" [ PROCESS {} ] ", rank); } +namespace { +int RunAllTests() { + auto status = RUN_ALL_TESTS(); + if (ppc::util::DestructorFailureFlag::Get()) { + throw std::runtime_error( + std::format("[ ERROR ] Destructor failed with code {}", ppc::util::DestructorFailureFlag::Get())); + } + return status; +} +} // namespace + int Init(int argc, char** argv) { const int init_res = MPI_Init(&argc, &argv); if (init_res != MPI_SUCCESS) { @@ -81,12 +92,8 @@ int Init(int argc, char** argv) { listeners.Append(new ppc::core::WorkerTestFailurePrinter(std::shared_ptr<::testing::TestEventListener>(listener))); } listeners.Append(new ppc::core::UnreadMessagesDetector()); - auto status = RUN_ALL_TESTS(); - if (ppc::util::DestructorFailureFlag::Get()) { - throw std::runtime_error( - std::format("[ ERROR ] Destructor failed with code {}", ppc::util::DestructorFailureFlag::Get())); - } + auto status = RunAllTests(); const int finalize_res = MPI_Finalize(); if (finalize_res != MPI_SUCCESS) { @@ -102,12 +109,7 @@ int SimpleInit(int argc, char** argv) { tbb::global_control control(tbb::global_control::max_allowed_parallelism, ppc::util::GetNumThreads()); testing::InitGoogleTest(&argc, argv); - auto status = RUN_ALL_TESTS(); - if (ppc::util::DestructorFailureFlag::Get()) { - throw std::runtime_error( - std::format("[ ERROR ] Destructor failed with code {}", ppc::util::DestructorFailureFlag::Get())); - } - return status; + return RunAllTests(); } } // namespace ppc::core