# Copyright (c) 2022-2024 Barcelona Supercomputing Center (BSC) # SPDX-License-Identifier: GPL-3.0-or-later check_c_compiler_flag("-fopenmp=libompv" OPENMPV_COMPILER_FOUND) check_linker_flag(C "-fopenmp=libompv" OPENMPV_LINKER_FOUND) cmake_path(GET CMAKE_C_COMPILER PARENT_PATH CMAKE_C_COMPILER_PATH) if(NOT OPENMPV_COMPILER_FOUND OR NOT OPENMPV_LINKER_FOUND) if(ENABLE_ALL_TESTS) message(FATAL_ERROR "Compiler doesn't support -fopenmp=libompv flag, cannot enable OpenMP-V RT tests") else() message(STATUS "Compiler doesn't support -fopenmp=libompv flag, disabling OpenMP-V RT tests") endif() return() endif() function(openmp_rt_test) ovni_test(${ARGN}) target_compile_options("${OVNI_TEST_NAME}" PUBLIC "-fopenmp=libompv" "-no-pedantic") target_link_options("${OVNI_TEST_NAME}" PUBLIC "-fopenmp=libompv") target_link_libraries("${OVNI_TEST_NAME}" PRIVATE "m") set_property(TEST "${OVNI_TEST_NAME}" APPEND PROPERTY ENVIRONMENT "OMP_OVNI=1") set_property(TEST "${OVNI_TEST_NAME}" APPEND PROPERTY ENVIRONMENT "NOSV_CONFIG_OVERRIDE=instrumentation.version=ovni") endfunction() openmp_rt_test(barrier-explicit.c) openmp_rt_test(critical.c) openmp_rt_test(if0-nested-task.c) openmp_rt_test(if0.c) openmp_rt_test(multi-parallels.c) openmp_rt_test(parallel-for.c) openmp_rt_test(parallel-loop.c) openmp_rt_test(parallel-nested.c) openmp_rt_test(parallel-task.c) openmp_rt_test(sections.c) openmp_rt_test(simple-task.c) openmp_rt_test(task.c) openmp_rt_test(taskloop.c) openmp_rt_test(taskwait.c) openmp_rt_test(team-distribute.c) openmp_rt_test(worksharing-and-tasks.c) openmp_rt_test(worksharing-mix.c) openmp_rt_test(worksharing-task.c) openmp_rt_test(worksharing.c) openmp_rt_test(worksharing01.c) openmp_rt_test(worksharing02.c) openmp_rt_test(worksharing03.c)