| # CMakeLists.txt file for unit testing OpenMP offloading runtime library. |
| if(NOT OPENMP_TEST_COMPILER_ID STREQUAL "Clang" OR |
| OPENMP_TEST_COMPILER_VERSION VERSION_LESS 6.0.0) |
| message(STATUS "Can only test with Clang compiler in version 6.0.0 or later.") |
| message(WARNING "The check-offload target will not be available!") |
| return() |
| endif() |
| |
| if(LIBOMPTARGET_ENABLE_DEBUG) |
| set(LIBOMPTARGET_DEBUG True) |
| else() |
| set(LIBOMPTARGET_DEBUG False) |
| endif() |
| |
| # Replace the space from user's input with ";" in case that CMake add escape |
| # char into the lit command. |
| string(REPLACE " " ";" LIBOMPTARGET_LIT_ARG_LIST "${LIBOMPTARGET_LIT_ARGS}") |
| |
| find_package(CUDAToolkit QUIET ${OFFLOAD_MIN_CUDA_VERSION}) |
| if(CUDAToolkit_FOUND) |
| get_filename_component(CUDA_ROOT "${CUDAToolkit_BIN_DIR}" DIRECTORY ABSOLUTE) |
| get_filename_component(CUDA_LIBDIR "${CUDA_cudart_static_LIBRARY}" DIRECTORY) |
| endif() |
| |
| set(OMP_DEPEND) |
| if(TARGET omp) |
| set(OMP_DEPEND omp) |
| endif() |
| |
| if(TARGET omptarget) |
| string(REGEX MATCHALL "([^\\ ]+\\ |[^\\ ]+$)" SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS}") |
| foreach(CURRENT_TARGET IN LISTS SYSTEM_TARGETS) |
| string(STRIP "${CURRENT_TARGET}" CURRENT_TARGET) |
| |
| add_offload_testsuite(check-libomptarget-${CURRENT_TARGET} |
| "Running libomptarget tests" |
| ${CMAKE_CURRENT_BINARY_DIR}/${CURRENT_TARGET} |
| DEPENDS omptarget ${OMP_DEPEND} ${LIBOMPTARGET_TESTED_PLUGINS} |
| ARGS ${LIBOMPTARGET_LIT_ARG_LIST}) |
| list(APPEND LIBOMPTARGET_LIT_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CURRENT_TARGET}) |
| |
| # Configure the lit.site.cfg.in file |
| set(AUTO_GEN_COMMENT "## Autogenerated by libomptarget configuration.\n# Do not edit!") |
| configure_file(lit.site.cfg.in ${CURRENT_TARGET}/lit.site.cfg @ONLY) |
| endforeach() |
| |
| # The tools that are needed or used by tests. |
| set(OFFLOAD_TOOLS llvm-offload-device-info llvm-omp-kernel-replay) |
| |
| add_offload_testsuite(check-libomptarget |
| "Running libomptarget tests" |
| ${LIBOMPTARGET_LIT_TESTSUITES} |
| EXCLUDE_FROM_CHECK_ALL |
| DEPENDS ${OFFLOAD_TOOLS} omptarget ${OMP_DEPEND} ${LIBOMPTARGET_TESTED_PLUGINS} |
| ARGS ${LIBOMPTARGET_LIT_ARG_LIST}) |
| else() |
| message(STATUS "Skipping libomptarget lit suites because libomptarget was not built.") |
| endif() |
| |
| # Add liboffload unit tests - the test binary will run on all available devices |
| set(OFFLOAD_UNITTEST_DIR ${CMAKE_CURRENT_BINARY_DIR}/../unittests) |
| configure_lit_site_cfg( |
| ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.in |
| ${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg |
| MAIN_CONFIG |
| ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.cfg.py) |
| |
| set(CHECK_OFFLOAD_SUITES ${CMAKE_CURRENT_BINARY_DIR}/unit) |
| set(CHECK_OFFLOAD_DEPS ${OFFLOAD_TOOLS} LLVMOffload OffloadUnitTests ${LIBOMPTARGET_TESTED_PLUGINS}) |
| set(CHECK_OFFLOAD_ARGS "") |
| |
| if(TARGET omptarget) |
| list(APPEND CHECK_OFFLOAD_SUITES ${LIBOMPTARGET_LIT_TESTSUITES}) |
| list(APPEND CHECK_OFFLOAD_DEPS omptarget ${OMP_DEPEND}) |
| list(APPEND CHECK_OFFLOAD_ARGS ${LIBOMPTARGET_LIT_ARG_LIST}) |
| endif() |
| |
| add_offload_testsuite(check-offload |
| "Running offload tests" |
| ${CHECK_OFFLOAD_SUITES} |
| EXCLUDE_FROM_CHECK_ALL |
| DEPENDS ${CHECK_OFFLOAD_DEPS} |
| ARGS ${CHECK_OFFLOAD_ARGS}) |
| |
| add_lit_testsuite(check-offload-unit "Running offload unittest suites" |
| ${CMAKE_CURRENT_BINARY_DIR}/unit |
| DEPENDS LLVMOffload OffloadUnitTests) |