[libclc] Allow testing unresolved symbols on multiple libraries (#193647)

Our downstream generates multiple libraries for a single target. This
change allows testing multiple libraries.
This commit is contained in:
Wenju He
2026-04-24 08:46:06 +08:00
committed by GitHub
parent f3192382c3
commit 969247cc47
2 changed files with 21 additions and 18 deletions

View File

@@ -265,6 +265,8 @@ add_libclc_library(libclc-${LIBCLC_TARGET}
PARENT_TARGET libclc-opencl-builtins
)
set(LIBCLC_UNRESOLVED_SYMBOL_TEST_TARGETS libclc-${LIBCLC_TARGET})
if(LLVM_INCLUDE_TESTS)
add_subdirectory(test)
endif()

View File

@@ -9,27 +9,28 @@ umbrella_lit_testsuite_begin(check-libclc)
# Testing unresolved symbols.
# Skip nvptx, clspv, spirv targets
if(ARCH MATCHES amdgcn)
# Get the output file from the target property
set(target_file "$<TARGET_PROPERTY:libclc-${LIBCLC_TARGET},TARGET_FILE>")
foreach(tgt IN LISTS LIBCLC_UNRESOLVED_SYMBOL_TEST_TARGETS)
set(target_file "$<TARGET_PROPERTY:${tgt},TARGET_FILE>")
set(LIBCLC_TARGET_TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}/${LIBCLC_TARGET})
file(MAKE_DIRECTORY ${LIBCLC_TARGET_TEST_DIR})
file(GENERATE OUTPUT ${LIBCLC_TARGET_TEST_DIR}/check-external-funcs.test
CONTENT "; RUN: llvm-nm -u \"${target_file}\" | FileCheck %s --allow-empty\n\n; CHECK-NOT: {{.+}}\n"
)
set(LIBCLC_TARGET_TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}/${tgt})
file(MAKE_DIRECTORY ${LIBCLC_TARGET_TEST_DIR})
file(GENERATE OUTPUT ${LIBCLC_TARGET_TEST_DIR}/check-external-funcs.test
CONTENT "; RUN: llvm-nm -u \"${target_file}\" | FileCheck %s --allow-empty\n\n; CHECK-NOT: {{.+}}\n"
)
configure_lit_site_cfg(
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
${LIBCLC_TARGET_TEST_DIR}/lit.site.cfg.py
MAIN_CONFIG
${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py
)
configure_lit_site_cfg(
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
${LIBCLC_TARGET_TEST_DIR}/lit.site.cfg.py
MAIN_CONFIG
${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py
)
add_lit_testsuite(check-libclc-external-funcs-${LIBCLC_TARGET} "Running ${LIBCLC_TARGET} tests"
${LIBCLC_TARGET_TEST_DIR}
DEPENDS ${LIBCLC_TEST_DEPS}
)
set_target_properties(check-libclc-external-funcs-${LIBCLC_TARGET} PROPERTIES FOLDER "libclc tests")
add_lit_testsuite(check-libclc-external-funcs-${tgt} "Running ${tgt} unresolved symbols tests"
${LIBCLC_TARGET_TEST_DIR}
DEPENDS ${LIBCLC_TEST_DEPS}
)
set_target_properties(check-libclc-external-funcs-${tgt} PROPERTIES FOLDER "libclc tests")
endforeach()
endif()
umbrella_lit_testsuite_end(check-libclc)