xref: /petsc/src/sys/tests/ex57.c (revision 51bfd985a79b0dd5d3aef344f3bb6c29160454cc)
1 
2 static char help[] = "Tests PetscCommGetComm().\n";
3 
4 #include <petscsys.h>
5 
6 int main(int argc,char **argv)
7 {
8   PetscErrorCode ierr;
9   MPI_Comm       comms[10],comm;
10   PetscInt       i;
11   PetscRandom    rand;
12 
13   ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr;
14   ierr = PetscRandomCreate(PETSC_COMM_WORLD,&rand);CHKERRQ(ierr);
15   ierr = PetscObjectGetComm((PetscObject)rand,&comm);CHKERRQ(ierr);
16   for (i=0; i<10; i++) {
17     ierr = PetscCommGetComm(comm,&comms[i]);CHKERRQ(ierr);
18   }
19   for (i=0; i<5; i++) {
20     ierr = PetscCommRestoreComm(comm,&comms[i]);CHKERRQ(ierr);
21   }
22   for (i=0; i<5; i++) {
23     ierr = PetscCommGetComm(comm,&comms[i]);CHKERRQ(ierr);
24   }
25   for (i=0; i<10; i++) {
26     ierr = PetscCommRestoreComm(comm,&comms[i]);CHKERRQ(ierr);
27   }
28   ierr = PetscRandomDestroy(&rand);CHKERRQ(ierr);
29   ierr = PetscFinalize();
30   return ierr;
31 }
32 
33 /*TEST
34 
35    test:
36      requires: defined(PETSC_USE_LOG)
37      args: -info
38      filter: grep Reusing | wc -l
39 
40 TEST*/
41