From df0d82bbd25e8ab46c4675b9eace6641da00530a Mon Sep 17 00:00:00 2001 From: Jeff Hammond Date: Wed, 5 Oct 2016 05:39:55 -0700 Subject: [PATCH] use correct type for MPI_Datatype in tests. fixes bug reported by IBM: On Wed, Oct 5, 2016 at 3:25 AM, Chris Ward wrote: I'm using the MPICH BVT tests to test a build of OpenMPI. While doing that, I find that 'nonblocking.c' needs to be revised as follows // int *types = NULL; MPI_Datatype *types = NULL; // types = malloc(size * sizeof(int)); types = malloc(size * sizeof(MPI_Datatype)); Presumably it works as-is for mpich because MPI_Datatype is an 'int'; but this isn't the case for other MPI implementations. Would one of the mpich developers care to make these changes to the source code ? --- test/mpi/coll/nonblocking.c | 4 ++-- test/mpi/errors/coll/noalias2.c | 4 ++-- test/mpi/errors/coll/noalias3.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/mpi/coll/nonblocking.c b/test/mpi/coll/nonblocking.c index 057480b..9d8dffb 100644 --- a/test/mpi/coll/nonblocking.c +++ b/test/mpi/coll/nonblocking.c @@ -34,7 +34,7 @@ int main(int argc, char **argv) int *rcounts = NULL; int *sdispls = NULL; int *rdispls = NULL; - int *types = NULL; + MPI_Datatype *types = NULL; MPI_Comm comm; MPI_Request req; @@ -62,7 +62,7 @@ int main(int argc, char **argv) my_assert(sdispls); rdispls = malloc(size * sizeof(int)); my_assert(rdispls); - types = malloc(size * sizeof(int)); + types = malloc(size * sizeof(MPI_Datatype)); my_assert(types); for (i = 0; i < size; ++i) { diff --git a/test/mpi/errors/coll/noalias2.c b/test/mpi/errors/coll/noalias2.c index 5b99ce6..b66e516 100644 --- a/test/mpi/errors/coll/noalias2.c +++ b/test/mpi/errors/coll/noalias2.c @@ -35,7 +35,7 @@ int main(int argc, char **argv) int *rcounts = NULL; int *sdispls = NULL; int *rdispls = NULL; - int *types = NULL; + MPI_Datatype *types = NULL; MPI_Comm comm; /* intentionally not using MTest_Init/MTest_Finalize in order to make it @@ -64,7 +64,7 @@ int main(int argc, char **argv) my_assert(sdispls); rdispls = malloc(size * sizeof(int)); my_assert(rdispls); - types = malloc(size * sizeof(int)); + types = malloc(size * sizeof(MPI_Datatype)); my_assert(types); for (i = 0; i < size; ++i) { diff --git a/test/mpi/errors/coll/noalias3.c b/test/mpi/errors/coll/noalias3.c index 6b8cf69..c95da3a 100644 --- a/test/mpi/errors/coll/noalias3.c +++ b/test/mpi/errors/coll/noalias3.c @@ -35,7 +35,7 @@ int main(int argc, char **argv) int *rcounts = NULL; int *sdispls = NULL; int *rdispls = NULL; - int *types = NULL; + MPI_Datatype *types = NULL; MPI_Comm comm; MPI_Request req; @@ -65,7 +65,7 @@ int main(int argc, char **argv) my_assert(sdispls); rdispls = malloc(size * sizeof(int)); my_assert(rdispls); - types = malloc(size * sizeof(int)); + types = malloc(size * sizeof(MPI_Datatype)); my_assert(types); for (i = 0; i < size; ++i) { -- 2.10.0