int main( int argc, char *argv[] ) { int errs = 0; MPI_Comm comm; int cnt, rlen; char name[MPI_MAX_OBJECT_NAME], nameout[MPI_MAX_OBJECT_NAME]; MTest_Init( &argc, &argv ); /* Check world and self firt */ nameout[0] = 0; MPI_Comm_get_name( MPI_COMM_WORLD, nameout, &rlen ); if (strcmp(nameout,"MPI_COMM_WORLD")) { errs++; printf( "Name of comm world is %s, should be MPI_COMM_WORLD\n", nameout ); } nameout[0] = 0; MPI_Comm_get_name( MPI_COMM_SELF, nameout, &rlen ); if (strcmp(nameout,"MPI_COMM_SELF")) { errs++; printf( "Name of comm self is %s, should be MPI_COMM_SELF\n", nameout ); } /* Now, handle other communicators, including world/self */ cnt = 0; while (MTestGetComm( &comm, 1 )) { if (comm == MPI_COMM_NULL) continue; sprintf( name, "comm-%d", cnt ); cnt++; MPI_Comm_set_name( comm, name ); nameout[0] = 0; MPI_Comm_get_name( comm, nameout, &rlen ); if (strcmp( name, nameout )) { errs++; printf( "Unexpected name, was %s but should be %s\n", nameout, name ); } MTestFreeComm( &comm ); } MTest_Finalize( errs ); MPI_Finalize(); return 0; }
int main(int argc, char *argv[]) { int errs = 0; int rc, result; int ranks[1]; MPI_Group group, outgroup; MPI_Comm comm; MTest_Init(&argc, &argv); /* 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); while (MTestGetComm(&comm, 1)) { if (comm == MPI_COMM_NULL) continue; MPI_Comm_group(comm, &group); rc = MPI_Group_incl(group, 0, 0, &outgroup); if (rc) { errs++; MTestPrintError(rc); printf("Error in creating an empty group with (0,0)\n"); /* Some MPI implementations may reject a null "ranks" pointer */ rc = MPI_Group_incl(group, 0, ranks, &outgroup); if (rc) { errs++; MTestPrintError(rc); printf("Error in creating an empty group with (0,ranks)\n"); } } if (outgroup != MPI_GROUP_EMPTY) { /* Is the group equivalent to group empty? */ rc = MPI_Group_compare(outgroup, MPI_GROUP_EMPTY, &result); if (result != MPI_IDENT) { errs++; MTestPrintError(rc); printf("Did not create a group equivalent to an empty group\n"); } } rc = MPI_Group_free(&group); if (rc) { errs++; MTestPrintError(rc); } if (outgroup != MPI_GROUP_NULL) { rc = MPI_Group_free(&outgroup); if (rc) { errs++; MTestPrintError(rc); } } MTestFreeComm(&comm); } MTest_Finalize(errs); return MTestReturnValue(errs); }