xref: /llvm-project/openmp/runtime/test/ompt/misc/pause_stop_tool.c (revision 9e0ee0e104a2f10b04144837d6a138b04a0193f6)
1 // RUN: %libomp-compile-and-run | FileCheck %s
2 // REQUIRES: ompt
3 #include "callback.h"
4 #include <omp.h>
5 int main() {
6   int x = 0;
7   int ret = 0;
8 #pragma omp parallel
9 #pragma omp single
10   x++;
11   // Expected to fail; omp_pause_stop_tool must not be specified
12   ret = omp_pause_resource(omp_pause_stop_tool, omp_get_initial_device());
13   printf("omp_pause_resource %s\n", ret ? "failed" : "succeeded");
14 #pragma omp parallel
15 #pragma omp single
16   x++;
17   // Expected to succeed
18   ret = omp_pause_resource_all(omp_pause_stop_tool);
19   printf("omp_pause_resource_all %s\n", ret ? "failed" : "succeeded");
20 #pragma omp parallel
21 #pragma omp single
22   x++;
23   printf("x = %d\n", x);
24   return 0;
25 
26   // Check if
27   // -- omp_pause_resource/resource_all returns expected code
28   // -- OMPT interface is shut down as expected
29 
30   // CHECK-NOT: {{^}}0: Could not register callback
31   // CHECK: 0: NULL_POINTER=[[NULL:.*$]]
32 
33   // CHECK: ompt_event_parallel_begin
34   // CHECK: ompt_event_parallel_end
35 
36   // CHECK: omp_pause_resource failed
37 
38   // CHECK: ompt_event_parallel_begin
39   // CHECK: ompt_event_parallel_end
40 
41   // CHECK: omp_pause_resource_all succeeded
42 
43   // CHECK-NOT: ompt_event
44 }
45