Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update mpich comm tests
[simgrid.git] / teshsuite / smpi / mpich3-test / comm / icm.c
index 102c738..4fcc395 100644 (file)
 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;
 }