xref: /petsc/src/sys/tests/ex80.c (revision ae41402952cc28c063c4130a4e6f45eaebc47552)
1*a0449d98SPierre Jolivet static char help[] = "Tests PetscLogView() called from different places.\n\n";
2*a0449d98SPierre Jolivet 
3*a0449d98SPierre Jolivet #include <petscsys.h>
4*a0449d98SPierre Jolivet #include <petscvec.h>
5*a0449d98SPierre Jolivet 
main(int argc,char ** args)6*a0449d98SPierre Jolivet int main(int argc, char **args)
7*a0449d98SPierre Jolivet {
8*a0449d98SPierre Jolivet   Vec         vec;
9*a0449d98SPierre Jolivet   PetscViewer viewer[2];
10*a0449d98SPierre Jolivet   PetscBool   flg = PETSC_FALSE;
11*a0449d98SPierre Jolivet 
12*a0449d98SPierre Jolivet   PetscFunctionBegin;
13*a0449d98SPierre Jolivet   PetscCall(PetscInitialize(&argc, &args, NULL, help));
14*a0449d98SPierre Jolivet   PetscCall(PetscLogDefaultBegin());
15*a0449d98SPierre Jolivet   PetscCall(PetscViewerCreate(PETSC_COMM_SELF, viewer));
16*a0449d98SPierre Jolivet   PetscCall(PetscViewerCreate(PETSC_COMM_SELF, viewer + 1));
17*a0449d98SPierre Jolivet   PetscCall(PetscViewerDestroy(viewer + 1));
18*a0449d98SPierre Jolivet   PetscCall(PetscViewerSetType(viewer[0], PETSCVIEWERASCII));
19*a0449d98SPierre Jolivet   PetscCall(PetscOptionsGetBool(NULL, NULL, "-with_vec", &flg, NULL));
20*a0449d98SPierre Jolivet   if (flg) {
21*a0449d98SPierre Jolivet     PetscCall(VecCreate(PETSC_COMM_SELF, &vec));
22*a0449d98SPierre Jolivet     PetscCall(VecDestroy(&vec));
23*a0449d98SPierre Jolivet   }
24*a0449d98SPierre Jolivet   flg = PETSC_FALSE;
25*a0449d98SPierre Jolivet   PetscCall(PetscOptionsGetBool(NULL, NULL, "-with_options", &flg, NULL));
26*a0449d98SPierre Jolivet   if (!flg) {
27*a0449d98SPierre Jolivet     PetscCall(PetscLogView(viewer[0]));
28*a0449d98SPierre Jolivet     PetscCall(PetscLogView(viewer[0]));
29*a0449d98SPierre Jolivet     PetscCall(PetscLogView(viewer[0]));
30*a0449d98SPierre Jolivet   } else {
31*a0449d98SPierre Jolivet     PetscCall(PetscLogViewFromOptions());
32*a0449d98SPierre Jolivet     PetscCall(PetscLogViewFromOptions());
33*a0449d98SPierre Jolivet     PetscCall(PetscLogViewFromOptions());
34*a0449d98SPierre Jolivet   }
35*a0449d98SPierre Jolivet   PetscCall(PetscViewerDestroy(viewer));
36*a0449d98SPierre Jolivet   PetscCall(PetscFinalize());
37*a0449d98SPierre Jolivet   return 0;
38*a0449d98SPierre Jolivet }
39*a0449d98SPierre Jolivet 
40*a0449d98SPierre Jolivet /*TEST
41*a0449d98SPierre Jolivet 
42*a0449d98SPierre Jolivet   testset:
43*a0449d98SPierre Jolivet     requires: defined(PETSC_USE_LOG)
44*a0449d98SPierre Jolivet     nsize: 1
45*a0449d98SPierre Jolivet     temporaries: default.log flamegraph.log
46*a0449d98SPierre Jolivet     filter: grep Viewer | uniq
47*a0449d98SPierre Jolivet     test:
48*a0449d98SPierre Jolivet       args: -log_view ascii,:flamegraph.log:ascii_flamegraph,:default.log -with_vec {{false true}shared output}
49*a0449d98SPierre Jolivet   # test:
50*a0449d98SPierre Jolivet   #   TODO: broken (wrong count when PetscLogViewFromOptions() is called by the user)
51*a0449d98SPierre Jolivet   #   args: -log_view ascii,:flamegraph.log:ascii_flamegraph,:default.log -with_vec {{false true}shared output} -with_options
52*a0449d98SPierre Jolivet 
53*a0449d98SPierre Jolivet  TEST*/
54