X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3d39ee2f8a52715e6b417575029faa8a91307f21..7842bd614301712801b9f2b4a117824333cd3e16:/teshsuite/smpi/mpich3-test/comm/icm.c diff --git a/teshsuite/smpi/mpich3-test/comm/icm.c b/teshsuite/smpi/mpich3-test/comm/icm.c index 102c738e84..4fcc395246 100644 --- a/teshsuite/smpi/mpich3-test/comm/icm.c +++ b/teshsuite/smpi/mpich3-test/comm/icm.c @@ -13,95 +13,90 @@ static char MTEST_Descrip[] = "Test intercomm merge, including the choice of the high value"; */ -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int errs = 0; int rank, size, rsize; int nsize, nrank; int minsize = 2; int isLeft; - MPI_Comm comm, comm1, comm2, comm3, comm4; + MPI_Comm comm, comm1, comm2, comm3, comm4; - MTest_Init( &argc, &argv ); + MTest_Init(&argc, &argv); - /* The following illustrates the use of the routines to - run through a selection of communicators and datatypes. - Use subsets of these for tests that do not involve combinations - of communicators, datatypes, and counts of datatypes */ - while (MTestGetIntercomm( &comm, &isLeft, minsize )) { - if (comm == MPI_COMM_NULL) continue; - /* Determine the sender and receiver */ - MPI_Comm_rank( comm, &rank ); - MPI_Comm_remote_size( comm, &rsize ); - MPI_Comm_size( comm, &size ); + /* The following illustrates the use of the routines to + * run through a selection of communicators and datatypes. + * Use subsets of these for tests that do not involve combinations + * of communicators, datatypes, and counts of datatypes */ + while (MTestGetIntercomm(&comm, &isLeft, minsize)) { + if (comm == MPI_COMM_NULL) + continue; + /* Determine the sender and receiver */ + MPI_Comm_rank(comm, &rank); + MPI_Comm_remote_size(comm, &rsize); + MPI_Comm_size(comm, &size); - /* Try building intercomms */ - MPI_Intercomm_merge( comm, isLeft, &comm1 ); - /* Check the size and ranks */ - MPI_Comm_size( comm1, &nsize ); - MPI_Comm_rank( comm1, &nrank ); - if (nsize != size + rsize) { - errs++; - printf( "(1) Comm size is %d but should be %d\n", nsize, - size + rsize ); - if (isLeft) { - /* The left processes should be high */ - if (nrank != rsize + rank) { - errs++; - printf( "(1) rank for high process is %d should be %d\n", - nrank, rsize + rank ); - } - } - else { - /* The right processes should be low */ - if (nrank != rank) { - errs++; - printf( "(1) rank for low process is %d should be %d\n", - nrank, rank ); - } - } - } - - MPI_Intercomm_merge( comm, !isLeft, &comm2 ); - /* Check the size and ranks */ - MPI_Comm_size( comm1, &nsize ); - MPI_Comm_rank( comm1, &nrank ); - if (nsize != size + rsize) { - errs++; - printf( "(2) Comm size is %d but should be %d\n", nsize, - size + rsize ); - if (!isLeft) { - /* The right processes should be high */ - if (nrank != rsize + rank) { - errs++; - printf( "(2) rank for high process is %d should be %d\n", - nrank, rsize + rank ); - } - } - else { - /* The left processes should be low */ - if (nrank != rank) { - errs++; - printf( "(2) rank for low process is %d should be %d\n", - nrank, rank ); - } - } - } - + /* Try building intercomms */ + MPI_Intercomm_merge(comm, isLeft, &comm1); + /* Check the size and ranks */ + MPI_Comm_size(comm1, &nsize); + MPI_Comm_rank(comm1, &nrank); + if (nsize != size + rsize) { + errs++; + printf("(1) Comm size is %d but should be %d\n", nsize, size + rsize); + if (isLeft) { + /* The left processes should be high */ + if (nrank != rsize + rank) { + errs++; + printf("(1) rank for high process is %d should be %d\n", nrank, rsize + rank); + } + } + else { + /* The right processes should be low */ + if (nrank != rank) { + errs++; + printf("(1) rank for low process is %d should be %d\n", nrank, rank); + } + } + } - MPI_Intercomm_merge( comm, 0, &comm3 ); + MPI_Intercomm_merge(comm, !isLeft, &comm2); + /* Check the size and ranks */ + MPI_Comm_size(comm1, &nsize); + MPI_Comm_rank(comm1, &nrank); + if (nsize != size + rsize) { + errs++; + printf("(2) Comm size is %d but should be %d\n", nsize, size + rsize); + if (!isLeft) { + /* The right processes should be high */ + if (nrank != rsize + rank) { + errs++; + printf("(2) rank for high process is %d should be %d\n", nrank, rsize + rank); + } + } + else { + /* The left processes should be low */ + if (nrank != rank) { + errs++; + printf("(2) rank for low process is %d should be %d\n", nrank, rank); + } + } + } - MPI_Intercomm_merge( comm, 1, &comm4 ); - - MPI_Comm_free( &comm1 ); - MPI_Comm_free( &comm2 ); - MPI_Comm_free( &comm3 ); - MPI_Comm_free( &comm4 ); - - MTestFreeComm( &comm ); + + MPI_Intercomm_merge(comm, 0, &comm3); + + MPI_Intercomm_merge(comm, 1, &comm4); + + MPI_Comm_free(&comm1); + MPI_Comm_free(&comm2); + MPI_Comm_free(&comm3); + MPI_Comm_free(&comm4); + + MTestFreeComm(&comm); } - MTest_Finalize( errs ); + MTest_Finalize(errs); MPI_Finalize(); return 0; }