1*c6e6295fSToby Isaac const char help[] = "Test dropping PetscLogEventEnd()";
2*c6e6295fSToby Isaac
3*c6e6295fSToby Isaac #include <petsc.h>
4*c6e6295fSToby Isaac
main(int argc,char ** argv)5*c6e6295fSToby Isaac int main(int argc, char **argv)
6*c6e6295fSToby Isaac {
7*c6e6295fSToby Isaac PetscLogEvent e1, e2;
8*c6e6295fSToby Isaac PetscLogStage s;
9*c6e6295fSToby Isaac
10*c6e6295fSToby Isaac PetscCall(PetscInitialize(&argc, &argv, NULL, help));
11*c6e6295fSToby Isaac PetscCall(PetscLogEventRegister("Event-1", PETSC_OBJECT_CLASSID, &e1));
12*c6e6295fSToby Isaac PetscCall(PetscLogEventRegister("Event-2", PETSC_OBJECT_CLASSID, &e2));
13*c6e6295fSToby Isaac PetscCall(PetscLogStageRegister("User Stage", &s));
14*c6e6295fSToby Isaac PetscCall(PetscLogStagePush(s));
15*c6e6295fSToby Isaac PetscCall(PetscSleep(0.1));
16*c6e6295fSToby Isaac PetscCall(PetscLogEventBegin(e1, NULL, NULL, NULL, NULL));
17*c6e6295fSToby Isaac PetscCall(PetscSleep(0.1));
18*c6e6295fSToby Isaac PetscCall(PetscLogEventBegin(e2, NULL, NULL, NULL, NULL));
19*c6e6295fSToby Isaac PetscCall(PetscSleep(0.1));
20*c6e6295fSToby Isaac PetscCall(PetscLogStagePop());
21*c6e6295fSToby Isaac PetscCall(PetscLogEventBegin(e1, NULL, NULL, NULL, NULL));
22*c6e6295fSToby Isaac PetscCall(PetscSleep(0.1));
23*c6e6295fSToby Isaac PetscCall(PetscLogEventBegin(e2, NULL, NULL, NULL, NULL));
24*c6e6295fSToby Isaac PetscCall(PetscSleep(0.1));
25*c6e6295fSToby Isaac PetscCall(PetscLogEventEnd(e1, NULL, NULL, NULL, NULL));
26*c6e6295fSToby Isaac PetscCall(PetscFinalize());
27*c6e6295fSToby Isaac return 0;
28*c6e6295fSToby Isaac }
29*c6e6295fSToby Isaac
30*c6e6295fSToby Isaac /*TEST
31*c6e6295fSToby Isaac
32*c6e6295fSToby Isaac test:
33*c6e6295fSToby Isaac suffix: 0
34*c6e6295fSToby Isaac requires: defined(PETSC_USE_LOG)
35*c6e6295fSToby Isaac args: -log_view ::ascii_flamegraph -info :loghandler
36*c6e6295fSToby Isaac filter: sed -E "s/ [0-9]+/ time_removed/g"
37*c6e6295fSToby Isaac
38*c6e6295fSToby Isaac TEST*/
39