/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */ /* * * (C) 2003 by Argonne National Laboratory. * See COPYRIGHT in top-level directory. */ #include "mpi.h" #include #include "mpitest.h" 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); MPI_Finalize(); return 0; }