X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/db17323a11a3089f492c2cae1be7913673689d5c..c81c99a491282f76757c2673961e3cdee6853539:/teshsuite/smpi/mpich3-test/pt2pt/waitany-null.c diff --git a/teshsuite/smpi/mpich3-test/pt2pt/waitany-null.c b/teshsuite/smpi/mpich3-test/pt2pt/waitany-null.c new file mode 100644 index 0000000000..9ba1eefa91 --- /dev/null +++ b/teshsuite/smpi/mpich3-test/pt2pt/waitany-null.c @@ -0,0 +1,85 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */ +/* + * (C) 2001 by Argonne National Laboratory. + * See COPYRIGHT in top-level directory. + */ +#include +#include +#include "mpitestconf.h" +#ifdef HAVE_STRING_H +#include +#endif +#include "mpi.h" + +static int verbose = 0; + +int main(int argc, char *argv[]); +int parse_args(int argc, char **argv); + +int main(int argc, char *argv[]) +{ + int i, err, errs = 0, rank, toterrs; + + int index; + MPI_Request requests[10]; + MPI_Status statuses[10]; + + MPI_Init(&argc, &argv); + parse_args(argc, argv); + + for (i=0; i < 10; i++) { + requests[i] = MPI_REQUEST_NULL; + } + + /* begin testing */ + /* To improve reporting of problems about operations, we + change the error handler to errors return */ + MPI_Comm_set_errhandler( MPI_COMM_WORLD, MPI_ERRORS_RETURN ); + + err = MPI_Waitany(10, requests, &index, statuses); + + if (err != MPI_SUCCESS) { + errs++; + fprintf(stderr, "MPI_Waitany did not return MPI_SUCCESS\n"); + } + + if (index != MPI_UNDEFINED) { + errs++; + fprintf(stderr, "MPI_Waitany did not set index to MPI_UNDEFINED\n"); + } + + /* end testing */ + + MPI_Comm_set_errhandler( MPI_COMM_WORLD, MPI_ERRORS_ARE_FATAL ); + MPI_Comm_rank( MPI_COMM_WORLD, & rank ); + MPI_Allreduce( &errs, &toterrs, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD ); + if (rank == 0) { + if (toterrs) { + fprintf(stderr, " Found %d errors\n", toterrs); + } + else { + printf(" No Errors\n"); + } + } + MPI_Finalize(); + return 0; +} + +int parse_args(int argc, char **argv) +{ + /* + int ret; + + while ((ret = getopt(argc, argv, "v")) >= 0) + { + switch (ret) { + case 'v': + verbose = 1; + break; + } + } + */ + if (argc > 1 && strcmp(argv[1], "-v") == 0) + verbose = 1; + return 0; +}