xref: /petsc/src/sys/classes/viewer/tests/ex5.c (revision 4e278199b78715991f5c71ebbd945c1489263e6c)
1 
2 static char help[] = "Tests PetscOptionsPushGetViewerOff() via checking output of PetscViewerASCIIPrintf().\n\n";
3 
4 #include <petscviewer.h>
5 
6 int main(int argc,char **args)
7 {
8   PetscViewer       viewer;
9   PetscErrorCode    ierr;
10   PetscViewerFormat format;
11   PetscBool         iascii;
12 
13   ierr = PetscInitialize(&argc,&args,(char*)0,help);if (ierr) return ierr;
14   ierr = PetscOptionsGetViewer(PETSC_COMM_WORLD,NULL,NULL,"-myviewer",&viewer,&format,NULL);CHKERRQ(ierr);
15   ierr = PetscObjectTypeCompare((PetscObject)viewer,PETSCVIEWERASCII,&iascii);CHKERRQ(ierr);
16   if (iascii) {
17     PetscBool flg;
18     ierr = PetscViewerPushFormat(viewer,format);CHKERRQ(ierr);
19     ierr = PetscViewerASCIIPrintf(viewer,"Testing PetscViewerASCIIPrintf %d\n", 0);CHKERRQ(ierr);
20     ierr = PetscViewerPopFormat(viewer);CHKERRQ(ierr);
21     ierr = PetscViewerDestroy(&viewer);CHKERRQ(ierr);
22     ierr = PetscOptionsPushGetViewerOff(PETSC_TRUE);CHKERRQ(ierr);
23     ierr = PetscOptionsGetViewer(PETSC_COMM_WORLD,NULL,NULL,"-myviewer",&viewer,&format,&flg);CHKERRQ(ierr);
24     if (flg) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_ARG_WRONGSTATE,"Pushed viewer off, but viewer was set\n");
25     if (viewer) {
26       ierr = PetscViewerPushFormat(viewer,format);CHKERRQ(ierr);
27       ierr = PetscViewerASCIIPrintf(viewer,"Testing PetscViewerASCIIPrintf %d\n", 1);CHKERRQ(ierr);
28       ierr = PetscViewerPopFormat(viewer);CHKERRQ(ierr);
29     }
30     ierr = PetscOptionsPopGetViewerOff();CHKERRQ(ierr);
31     ierr = PetscOptionsGetViewer(PETSC_COMM_WORLD,NULL,NULL,"-myviewer",&viewer,&format,&flg);CHKERRQ(ierr);
32     ierr = PetscViewerPushFormat(viewer,format);CHKERRQ(ierr);
33     ierr = PetscViewerASCIIPrintf(viewer,"Testing PetscViewerASCIIPrintf %d\n", 2);CHKERRQ(ierr);
34     ierr = PetscViewerPopFormat(viewer);CHKERRQ(ierr);
35   }
36   ierr = PetscViewerDestroy(&viewer);CHKERRQ(ierr);
37   ierr = PetscFinalize();
38   return ierr;
39 }
40 
41 /*TEST
42 
43    test:
44       args: -myviewer
45 
46 TEST*/
47