mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 15:57:15 +00:00

Use the test compiler ID to verify whether tests can be run rather than the host compiler. This makes it possible to run tests (with Clang) while the library itself was built with GCC.
66 lines
2.3 KiB
CMake
66 lines
2.3 KiB
CMake
# 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()
|
|
|
|
if (NOT OPENMP_STANDALONE_BUILD AND "compiler-rt" IN_LIST LLVM_ENABLE_RUNTIMES)
|
|
set(LIBOMPTARGET_TEST_GPU_PGO True)
|
|
else()
|
|
set(LIBOMPTARGET_TEST_GPU_PGO 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)
|
|
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()
|
|
|
|
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()
|
|
|
|
|
|
add_offload_testsuite(check-libomptarget
|
|
"Running libomptarget tests"
|
|
${LIBOMPTARGET_LIT_TESTSUITES}
|
|
EXCLUDE_FROM_CHECK_ALL
|
|
DEPENDS llvm-offload-device-info omptarget ${OMP_DEPEND} ${LIBOMPTARGET_TESTED_PLUGINS}
|
|
ARGS ${LIBOMPTARGET_LIT_ARG_LIST})
|
|
|
|
add_offload_testsuite(check-offload
|
|
"Running libomptarget tests"
|
|
${LIBOMPTARGET_LIT_TESTSUITES}
|
|
EXCLUDE_FROM_CHECK_ALL
|
|
DEPENDS llvm-offload-device-info omptarget ${OMP_DEPEND} ${LIBOMPTARGET_TESTED_PLUGINS}
|
|
ARGS ${LIBOMPTARGET_LIT_ARG_LIST})
|