llvm-project/openmp/runtime/test/ompt/misc/pause_stop_tool.c
Hansang Bae 9e0ee0e104
[OpenMP] Add support for pause with omp_pause_stop_tool (#97100)
This patch adds support for pause resource with a new enumerator
omp_pause_stop_tool. The expected behavior of this enumerator is
* omp_pause_resource: not allowed
* omp_pause_resource_all: equivalent to omp_pause_hard
2024-08-15 11:44:50 -05:00

45 lines
1.1 KiB
C

// RUN: %libomp-compile-and-run | FileCheck %s
// REQUIRES: ompt
#include "callback.h"
#include <omp.h>
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
}