1 static char help[] = "Tests PetscLogView() called from different places.\n\n"; 2 3 #include <petscsys.h> 4 #include <petscvec.h> 5 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