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