// RUN: %libomp-compile-and-run | FileCheck %s // REQUIRES: ompt #include "callback.h" #include int main() { int x = 0; int ret = 0; #pragma omp parallel #pragma omp single x++; // Expected to fail; omp_pause_stop_tool must not be specified ret = omp_pause_resource(omp_pause_stop_tool, omp_get_initial_device()); printf("omp_pause_resource %s\n", ret ? "failed" : "succeeded"); #pragma omp parallel #pragma omp single x++; // Expected to succeed ret = omp_pause_resource_all(omp_pause_stop_tool); printf("omp_pause_resource_all %s\n", ret ? "failed" : "succeeded"); #pragma omp parallel #pragma omp single x++; printf("x = %d\n", x); return 0; // Check if // -- omp_pause_resource/resource_all returns expected code // -- OMPT interface is shut down as expected // CHECK-NOT: {{^}}0: Could not register callback // CHECK: 0: NULL_POINTER=[[NULL:.*$]] // CHECK: ompt_event_parallel_begin // CHECK: ompt_event_parallel_end // CHECK: omp_pause_resource failed // CHECK: ompt_event_parallel_begin // CHECK: ompt_event_parallel_end // CHECK: omp_pause_resource_all succeeded // CHECK-NOT: ompt_event }