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