[libc-commits] [libc] ecfcdd6 - [libc] Fix check-libc-lit running tests during build (#188081)

via libc-commits libc-commits at lists.llvm.org
Thu Mar 26 14:00:33 PDT 2026


Author: Jeff Bailey
Date: 2026-03-26T21:00:28Z
New Revision: ecfcdd6e2a65e90ad12a446d17944fb49afd8e26

URL: https://github.com/llvm/llvm-project/commit/ecfcdd6e2a65e90ad12a446d17944fb49afd8e26
DIFF: https://github.com/llvm/llvm-project/commit/ecfcdd6e2a65e90ad12a446d17944fb49afd8e26.diff

LOG: [libc] Fix check-libc-lit running tests during build (#188081)

Updated check-libc-lit to depend only on build-only targets. Added
libc-integration-tests-build to track integration test executables and
updated LLVMLibCTestRules.cmake to populate it.

Removed incorrect dependencies on execution suites in include and
integration tests that were introduced in #184366.

Added: 
    

Modified: 
    libc/cmake/modules/LLVMLibCTestRules.cmake
    libc/test/CMakeLists.txt
    libc/test/include/CMakeLists.txt
    libc/test/integration/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/libc/cmake/modules/LLVMLibCTestRules.cmake b/libc/cmake/modules/LLVMLibCTestRules.cmake
index 6759bb9fb833e..e25f739408b99 100644
--- a/libc/cmake/modules/LLVMLibCTestRules.cmake
+++ b/libc/cmake/modules/LLVMLibCTestRules.cmake
@@ -336,14 +336,17 @@ function(create_libc_unittest fq_target_name)
     )
   endif()
 
+  # The SUITE variable can be used to group tests into a custom target. 
+  # If a target named ${LIBC_UNITTEST_SUITE}-build exists, we add the 
+  # test executable to it as a dependency. This allows building the 
+  # test binaries for Lit without triggering their execution.
   if(LIBC_UNITTEST_SUITE)
-    add_dependencies(
-      ${LIBC_UNITTEST_SUITE}
-      ${fq_target_name}
-    )
+    add_dependencies(${LIBC_UNITTEST_SUITE} ${fq_target_name})
+    if(TARGET ${LIBC_UNITTEST_SUITE}-build)
+      add_dependencies(${LIBC_UNITTEST_SUITE}-build ${fq_build_target_name})
+    endif()
   endif()
   add_dependencies(libc-unit-tests ${fq_target_name})
-  # Also add dependency to build-only target for lit
   if(TARGET libc-unit-tests-build)
     add_dependencies(libc-unit-tests-build ${fq_build_target_name})
   endif()
@@ -666,7 +669,18 @@ function(add_integration_test test_name)
     COMMAND_EXPAND_LISTS
     COMMENT "Running integration test ${fq_target_name}"
   )
-  add_dependencies(${INTEGRATION_TEST_SUITE} ${fq_target_name})
+  if(INTEGRATION_TEST_SUITE)
+    add_dependencies(${INTEGRATION_TEST_SUITE} ${fq_target_name})
+    # If a target named ${INTEGRATION_TEST_SUITE}-build exists, we add the 
+    # test executable to it as a dependency. This allows building the 
+    # test binaries for Lit without triggering their execution.
+    if(TARGET ${INTEGRATION_TEST_SUITE}-build)
+      add_dependencies(${INTEGRATION_TEST_SUITE}-build ${fq_build_target_name})
+    endif()
+  endif()
+  if(TARGET libc-integration-tests-build)
+    add_dependencies(libc-integration-tests-build ${fq_build_target_name})
+  endif()
 endfunction(add_integration_test)
 
 # Rule to add a hermetic program. A hermetic program is one whose executable is fully
@@ -906,7 +920,15 @@ function(add_libc_hermetic test_name)
     # If it is a benchmark, it will already have been added to the
     # gpu-benchmark target
     add_dependencies(libc-hermetic-tests ${fq_target_name})
-    # Also add dependency to build-only target for lit
+    if(LIBC_HERMETIC_TEST_SUITE)
+      add_dependencies(${LIBC_HERMETIC_TEST_SUITE} ${fq_target_name})
+      # If a target named ${LIBC_HERMETIC_TEST_SUITE}-build exists, we add the 
+      # test executable to it as a dependency. This allows building the 
+      # test binaries for Lit without triggering their execution.
+      if(TARGET ${LIBC_HERMETIC_TEST_SUITE}-build)
+        add_dependencies(${LIBC_HERMETIC_TEST_SUITE}-build ${fq_build_target_name})
+      endif()
+    endif()
     if(TARGET libc-hermetic-tests-build)
       add_dependencies(libc-hermetic-tests-build ${fq_build_target_name})
     endif()

diff  --git a/libc/test/CMakeLists.txt b/libc/test/CMakeLists.txt
index bff8e9d82e949..60478739aced4 100644
--- a/libc/test/CMakeLists.txt
+++ b/libc/test/CMakeLists.txt
@@ -13,6 +13,8 @@ add_custom_target(libc-long-running-tests)
 # Build-only targets for lit (don't run tests, just build executables)
 add_custom_target(libc-unit-tests-build)
 add_custom_target(libc-hermetic-tests-build)
+add_custom_target(libc-integration-tests-build)
+add_custom_target(libc_include_tests-build)
 
 # Resolve the GPU loader executable path for the lit site config.
 if(TARGET libc.utils.gpu.loader)
@@ -38,7 +40,7 @@ configure_lit_site_cfg(
 add_lit_testsuite(check-libc-lit
   "Running libc tests via lit"
   ${LIBC_BUILD_DIR}/test
-  DEPENDS libc-unit-tests-build libc-hermetic-tests-build
+  DEPENDS libc-unit-tests-build libc-hermetic-tests-build libc-integration-tests-build libc_include_tests-build
 )
 
 add_subdirectory(UnitTest)

diff  --git a/libc/test/include/CMakeLists.txt b/libc/test/include/CMakeLists.txt
index c1828f51c261e..1d5bc3d8da2c8 100644
--- a/libc/test/include/CMakeLists.txt
+++ b/libc/test/include/CMakeLists.txt
@@ -1,6 +1,6 @@
 add_custom_target(libc_include_tests)
 add_dependencies(check-libc libc_include_tests)
-add_dependencies(check-libc-lit libc_include_tests)
+add_dependencies(check-libc-lit libc_include_tests-build)
 
 add_libc_test(
   assert_test

diff  --git a/libc/test/integration/CMakeLists.txt b/libc/test/integration/CMakeLists.txt
index 9a7e9a57752e6..4c9970cf364eb 100644
--- a/libc/test/integration/CMakeLists.txt
+++ b/libc/test/integration/CMakeLists.txt
@@ -1,6 +1,6 @@
 add_custom_target(libc-integration-tests)
 add_dependencies(check-libc libc-integration-tests)
-add_dependencies(check-libc-lit libc-integration-tests)
+add_dependencies(check-libc-lit libc-integration-tests-build)
 
 function(add_libc_integration_test_suite name)
   add_custom_target(${name})


        


More information about the libc-commits mailing list