@@ -60,6 +60,17 @@ void WorkerTestFailurePrinter::PrintProcessRank() {
6060 std::cerr << std::format (" [ PROCESS {} ] " , rank);
6161}
6262
63+ namespace {
64+ int RunAllTests () {
65+ auto status = RUN_ALL_TESTS ();
66+ if (ppc::util::DestructorFailureFlag::Get ()) {
67+ throw std::runtime_error (
68+ std::format (" [ ERROR ] Destructor failed with code {}" , ppc::util::DestructorFailureFlag::Get ()));
69+ }
70+ return status;
71+ }
72+ } // namespace
73+
6374int Init (int argc, char ** argv) {
6475 const int init_res = MPI_Init (&argc, &argv);
6576 if (init_res != MPI_SUCCESS) {
@@ -81,12 +92,8 @@ int Init(int argc, char** argv) {
8192 listeners.Append (new ppc::core::WorkerTestFailurePrinter (std::shared_ptr<::testing::TestEventListener>(listener)));
8293 }
8394 listeners.Append (new ppc::core::UnreadMessagesDetector ());
84- auto status = RUN_ALL_TESTS ();
8595
86- if (ppc::util::DestructorFailureFlag::Get ()) {
87- throw std::runtime_error (
88- std::format (" [ ERROR ] Destructor failed with code {}" , ppc::util::DestructorFailureFlag::Get ()));
89- }
96+ auto status = RunAllTests ();
9097
9198 const int finalize_res = MPI_Finalize ();
9299 if (finalize_res != MPI_SUCCESS) {
@@ -102,12 +109,7 @@ int SimpleInit(int argc, char** argv) {
102109 tbb::global_control control (tbb::global_control::max_allowed_parallelism, ppc::util::GetNumThreads ());
103110
104111 testing::InitGoogleTest (&argc, argv);
105- auto status = RUN_ALL_TESTS ();
106- if (ppc::util::DestructorFailureFlag::Get ()) {
107- throw std::runtime_error (
108- std::format (" [ ERROR ] Destructor failed with code {}" , ppc::util::DestructorFailureFlag::Get ()));
109- }
110- return status;
112+ return RunAllTests ();
111113}
112114
113115} // namespace ppc::core
0 commit comments