@@ -79,11 +79,16 @@ class BaseRunPerfTests : public ::testing::TestWithParam<PerfTestParam<InType, O
7979 throw std::runtime_error (err_msg.str ().c_str ());
8080 }
8181
82+ #ifndef PPC_ASAN_RUN
8283 int rank = -1 ;
8384 MPI_Comm_rank (MPI_COMM_WORLD , &rank);
8485 if (rank == 0 ) {
8586 perf.PrintPerfStatistic (test_name);
8687 }
88+ #else
89+ perf.PrintPerfStatistic (test_name);
90+ #endif
91+
8792 OutType output_data = task_->GetOutput ();
8893 ASSERT_TRUE (CheckTestOutputData (output_data));
8994 }
@@ -92,14 +97,39 @@ class BaseRunPerfTests : public ::testing::TestWithParam<PerfTestParam<InType, O
9297 ppc::core::TaskPtr<InType, OutType> task_;
9398};
9499
95- #define ADD_PERF_TASK (TaskType, InputTypeParam ) \
96- std::make_tuple (ppc::core::TaskGetter<TaskType, InputTypeParam>, \
97- std::string (ppc::util::GetNamespace<TaskType>()) + std::string(" _" ) + \
98- ppc::core::GetStringTaskType(TaskType::GetStaticTypeOfTask(), PPC_STUDENT_SETTINGS), \
99- ppc::core::PerfResults::TypeOfRunning::kPipeline), \
100- std::make_tuple(ppc::core::TaskGetter<TaskType, InputTypeParam>, \
101- std::string (ppc::util::GetNamespace<TaskType>()) + std::string(" _" ) + \
102- ppc::core::GetStringTaskType(TaskType::GetStaticTypeOfTask(), PPC_STUDENT_SETTINGS), \
103- ppc::core::PerfResults::TypeOfRunning::kTaskRun)
100+ #define ADD_PERF_TASK_THREADS (TaskType, InputTypeParam, SettingsPath ) \
101+ std::tuple (std::make_tuple(ppc::core::TaskGetter<TaskType, InputTypeParam>, \
102+ std::string (ppc::util::GetNamespace<TaskType>()) + "_" + \
103+ ppc::core::GetStringTaskType(TaskType::GetStaticTypeOfTask(), SettingsPath), \
104+ ppc::core::PerfResults::TypeOfRunning::kPipeline), \
105+ std::make_tuple(ppc::core::TaskGetter<TaskType, InputTypeParam>, \
106+ std::string (ppc::util::GetNamespace<TaskType>()) + "_" + \
107+ ppc::core::GetStringTaskType(TaskType::GetStaticTypeOfTask(), SettingsPath), \
108+ ppc::core::PerfResults::TypeOfRunning::kTaskRun))
109+
110+ template <typename Tuple, std::size_t... I>
111+ auto TupleToGTestValuesImpl(Tuple&& tup, std::index_sequence<I...>) {
112+ return ::testing::Values (std::get<I>(std::forward<Tuple>(tup))...);
113+ }
114+
115+ template <typename Tuple>
116+ auto TupleToGTestValues (Tuple&& tup) {
117+ constexpr size_t size = std::tuple_size<std::decay_t <Tuple>>::value;
118+ return TupleToGTestValuesImpl (std::forward<Tuple>(tup), std::make_index_sequence<size>{});
119+ }
120+
121+ #ifndef PPC_ASAN_RUN
122+ #define ADD_PERF_TASK_PROCESS (TaskType, InputTypeParam, SettingsPath ) \
123+ std::tuple (std::make_tuple(ppc::core::TaskGetter<TaskType, InputTypeParam>, \
124+ std::string (ppc::util::GetNamespace<TaskType>()) + "_" + \
125+ ppc::core::GetStringTaskType(TaskType::GetStaticTypeOfTask(), SettingsPath), \
126+ ppc::core::PerfResults::TypeOfRunning::kPipeline), \
127+ std::make_tuple(ppc::core::TaskGetter<TaskType, InputTypeParam>, \
128+ std::string (ppc::util::GetNamespace<TaskType>()) + "_" + \
129+ ppc::core::GetStringTaskType(TaskType::GetStaticTypeOfTask(), SettingsPath), \
130+ ppc::core::PerfResults::TypeOfRunning::kTaskRun))
131+ #else
132+ #define ADD_PERF_TASK_PROCESS (TaskType, InputTypeParam, SettingsPath ) std::make_tuple()
133+ #endif
104134
105135} // namespace ppc::util
0 commit comments