diff options
Diffstat (limited to 'openmp/runtime/test/ompt/loadtool/tool_available.c')
| -rw-r--r-- | openmp/runtime/test/ompt/loadtool/tool_available.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/openmp/runtime/test/ompt/loadtool/tool_available.c b/openmp/runtime/test/ompt/loadtool/tool_available.c new file mode 100644 index 00000000000..0205193176e --- /dev/null +++ b/openmp/runtime/test/ompt/loadtool/tool_available.c @@ -0,0 +1,59 @@ +// RUN: %libomp-compile -DCODE && %libomp-compile -DTOOL -o%T/tool.so -shared -fPIC && env OMP_TOOL_LIBRARIES=%T/tool.so %libomp-run | FileCheck %s +// REQUIRES: ompt + +/* + * This file contains code for an OMPT shared library tool to be + * loaded and the code for the OpenMP executable. + * -DTOOL enables the code for the tool during compilation + * -DCODE enables the code for the executable during compilation + * The RUN line compiles the two binaries and then tries to load + * the tool using the OMP_TOOL_LIBRARIES environmental variable. + */ + +#ifdef CODE +#include "omp.h" + +int main() +{ + #pragma omp parallel num_threads(2) + { + } + + + // Check if libomp supports the callbacks for this test. + // CHECK-NOT: {{^}}0: Could not register callback + + // CHECK: {{^}}0: NULL_POINTER=[[NULL:.*$]] + // CHECK: {{^}}0: ompt_event_runtime_shutdown + + return 0; +} + +#endif /* CODE */ + +#ifdef TOOL + +#include <stdio.h> +#include <ompt.h> + +int ompt_initialize( + ompt_function_lookup_t lookup, + ompt_fns_t* fns) +{ + printf("0: NULL_POINTER=%p\n", (void*)NULL); + return 1; //success +} + +void ompt_finalize(ompt_fns_t* fns) +{ + printf("%d: ompt_event_runtime_shutdown\n", omp_get_thread_num()); +} + +ompt_fns_t* ompt_start_tool( + unsigned int omp_version, + const char *runtime_version) +{ + static ompt_fns_t ompt_fns = {&ompt_initialize,&ompt_finalize}; + return &ompt_fns; +} +#endif /* TOOL */ |

