xref: /petsc/src/sys/tests/ex57.c (revision 5f80ce2ab25dff0f4601e710601cbbcecf323266)
157f21012SBarry Smith 
257f21012SBarry Smith static char help[] = "Tests PetscCommGetComm().\n";
357f21012SBarry Smith 
457f21012SBarry Smith #include <petscsys.h>
557f21012SBarry Smith 
657f21012SBarry Smith int main(int argc,char **argv)
757f21012SBarry Smith {
857f21012SBarry Smith   PetscErrorCode ierr;
957f21012SBarry Smith   MPI_Comm       comms[10],comm;
1057f21012SBarry Smith   PetscInt       i;
1157f21012SBarry Smith   PetscRandom    rand;
1257f21012SBarry Smith 
1357f21012SBarry Smith   ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr;
14*5f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscRandomCreate(PETSC_COMM_WORLD,&rand));
15*5f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscObjectGetComm((PetscObject)rand,&comm));
1657f21012SBarry Smith   for (i=0; i<10; i++) {
17*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscCommGetComm(comm,&comms[i]));
1857f21012SBarry Smith   }
1957f21012SBarry Smith   for (i=0; i<5; i++) {
20*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscCommRestoreComm(comm,&comms[i]));
2157f21012SBarry Smith   }
2257f21012SBarry Smith   for (i=0; i<5; i++) {
23*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscCommGetComm(comm,&comms[i]));
2457f21012SBarry Smith   }
2557f21012SBarry Smith   for (i=0; i<10; i++) {
26*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscCommRestoreComm(comm,&comms[i]));
2757f21012SBarry Smith   }
28*5f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscRandomDestroy(&rand));
2957f21012SBarry Smith   ierr = PetscFinalize();
3057f21012SBarry Smith   return ierr;
3157f21012SBarry Smith }
3257f21012SBarry Smith 
3357f21012SBarry Smith /*TEST
3457f21012SBarry Smith 
3557f21012SBarry Smith    test:
3657f21012SBarry Smith      requires: defined(PETSC_USE_LOG)
3757f21012SBarry Smith      args: -info
3857f21012SBarry Smith      filter: grep Reusing | wc -l
3957f21012SBarry Smith 
4057f21012SBarry Smith TEST*/
41