From 00129ae77d651682fa3a36a3d5b15410d3ad1e1a Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Thu, 18 Oct 2018 19:17:22 +0200 Subject: [PATCH] Add first mpi unit tests --- tests/mpi_test_Messenger.cpp | 46 +++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/tests/mpi_test_Messenger.cpp b/tests/mpi_test_Messenger.cpp index d39c18c19..47bf8d50e 100644 --- a/tests/mpi_test_Messenger.cpp +++ b/tests/mpi_test_Messenger.cpp @@ -1,19 +1,47 @@ #include <catch.hpp> #include <Messenger.hpp> +#include <Array.hpp> + +#include <pastis_config.hpp> + +#ifdef PASTIS_HAS_MPI #include <mpi.h> +#define IF_MPI(INSTRUCTION) INSTRUCTION +#else +#define IF_MPI(INSTRUCTION) +#endif // PASTIS_HAS_MPI + +namespace mpi_check +{ +template <typename T> +void test_allToAll() +{ + Array<T> data_array(commSize()); + for (size_t i=0; i< data_array.size(); ++i) { + data_array[i] = commRank(); + } + auto exchanged_array = allToAll(data_array); + + for (size_t i=0; i< data_array.size(); ++i) { + REQUIRE(exchanged_array[i] == i); + } +} +} TEST_CASE("Messenger", "[mpi]") { - SECTION("check for parallel test") { - { - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - REQUIRE(rank == commRank()); + SECTION("communication info") { + int rank=0; + IF_MPI(MPI_Comm_rank(MPI_COMM_WORLD, &rank)); + REQUIRE(rank == commRank()); + + int size=1; + IF_MPI(MPI_Comm_size(MPI_COMM_WORLD, &size)); + REQUIRE(size == commSize()); + } - int size; - MPI_Comm_size(MPI_COMM_WORLD, &size); - REQUIRE(size == commSize()); - } + SECTION("allToAll") { + mpi_check::test_allToAll<int8_t>(); } } -- GitLab