From 969247cc47a35ad73155f97f7d66c3f558ea96c5 Mon Sep 17 00:00:00 2001 From: Wenju He Date: Fri, 24 Apr 2026 08:46:06 +0800 Subject: [PATCH] [libclc] Allow testing unresolved symbols on multiple libraries (#193647) Our downstream generates multiple libraries for a single target. This change allows testing multiple libraries. --- libclc/CMakeLists.txt | 2 ++ libclc/test/CMakeLists.txt | 37 +++++++++++++++++++------------------ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/libclc/CMakeLists.txt b/libclc/CMakeLists.txt index c5869d225216..84dd0ee52f9a 100644 --- a/libclc/CMakeLists.txt +++ b/libclc/CMakeLists.txt @@ -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() diff --git a/libclc/test/CMakeLists.txt b/libclc/test/CMakeLists.txt index c65346ec893f..98566a517f60 100644 --- a/libclc/test/CMakeLists.txt +++ b/libclc/test/CMakeLists.txt @@ -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 "$") + foreach(tgt IN LISTS LIBCLC_UNRESOLVED_SYMBOL_TEST_TARGETS) + set(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)