[llvm] [Offload] Add framework for math conformance tests (PR #149242)
Leandro Lacerda via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 29 09:00:31 PDT 2025
================
@@ -96,27 +96,56 @@ function(add_offload_unittest test_dirname)
endfunction()
function(add_conformance_test test_name)
- set(target_name "${test_name}.conformance")
-
- list(TRANSFORM ARGN PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/" OUTPUT_VARIABLE files)
+ set(options "")
+ set(oneValueArgs "")
+ set(multiValueArgs "SOURCES;PROVIDERS")
+ cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+ if(NOT ARG_SOURCES)
+ message(WARNING "Conformance test '${test_name}' must specify at least one source file")
+ return()
+ endif()
+ if(NOT ARG_PROVIDERS)
+ message(WARNING "Conformance test '${test_name}' must specify at least one provider")
+ return()
+ endif()
if(NOT TARGET libc)
message(WARNING "Cannot run conformance tests without the LLVM C library")
return()
endif()
- add_executable(${target_name} ${files})
- add_dependencies(${target_name} ${PLUGINS_TEST_COMMON} ${test_name}.bin)
- target_compile_definitions(${target_name} PRIVATE DEVICE_CODE_PATH="${CONFORMANCE_TEST_DEVICE_CODE_PATH}")
- target_link_libraries(${target_name} PRIVATE ${PLUGINS_TEST_COMMON} libc)
- target_include_directories(${target_name} PRIVATE ${PLUGINS_TEST_INCLUDE})
- set_target_properties(${target_name} PROPERTIES EXCLUDE_FROM_ALL TRUE)
-
- add_custom_target(offload.conformance.${test_name}
- COMMAND $<TARGET_FILE:${target_name}>
- DEPENDS ${target_name}
- COMMENT "Running conformance test ${test_name}")
- add_dependencies(offload.conformance offload.conformance.${test_name})
+ list(TRANSFORM ARG_SOURCES PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/" OUTPUT_VARIABLE files)
+ add_custom_target(offload.conformance.${test_name})
+
+ foreach(provider IN LISTS ARG_PROVIDERS)
----------------
leandrolcampos wrote:
Done, thanks!
https://github.com/llvm/llvm-project/pull/149242
More information about the llvm-commits
mailing list