Actual source code: ex71.c

  1: const char help[] = "Test getting performance info when the default log handler is not running";

  3: #include <petscsys.h>
  4: #include <petscviewer.h>

  6: int main(int argc, char **argv)
  7: {
  8:   PetscLogEvent      event_id;
  9:   PetscLogStage      stage_id;
 10:   PetscEventPerfInfo stage_info;
 11:   PetscEventPerfInfo event_info;

 13:   PetscCall(PetscInitialize(&argc, &argv, NULL, help));
 14:   PetscCall(PetscLogEventRegister("My event", PETSC_VIEWER_CLASSID, &event_id));
 15:   PetscCall(PetscLogStageRegister("My stage", &stage_id));
 16:   PetscCall(PetscLogStagePush(stage_id));
 17:   PetscCall(PetscLogEventBegin(event_id, NULL, NULL, NULL, NULL));
 18:   PetscCall(PetscSleep(0.1));
 19:   PetscCall(PetscLogEventEnd(event_id, NULL, NULL, NULL, NULL));
 20:   PetscCall(PetscLogStagePop());
 21:   PetscCall(PetscLogEventGetPerfInfo(stage_id, event_id, &event_info));
 22:   PetscCall(PetscLogStageGetPerfInfo(stage_id, &stage_info));
 23:   PetscCheck(event_info.time == 0.0, PETSC_COMM_SELF, PETSC_ERR_PLIB, "Stats should be zero");
 24:   PetscCheck(stage_info.time == 0.0, PETSC_COMM_SELF, PETSC_ERR_PLIB, "Stats should be zero");
 25:   PetscCall(PetscFinalize());
 26:   return 0;
 27: }

 29: /*TEST

 31:   test:
 32:     suffix: 0
 33:     args: -petsc_ci 0

 35: TEST*/