[libc-commits] [libc] 2f2122a - [libc][NFC] Add few options to allow users to skip building and running some tests. (#199474)

via libc-commits libc-commits at lists.llvm.org
Fri May 29 09:52:17 PDT 2026


Author: lntue
Date: 2026-05-29T12:52:11-04:00
New Revision: 2f2122a1438116b6e4d159bc8c7d7abe49ce7098

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

LOG: [libc][NFC] Add few options to allow users to skip building and running some tests. (#199474)

These options will be used to reduce redundancy and time for precommit
CIs:
- LIBC_TEST_SKIP_DEATH_TESTS
- LIBC_TEST_SKIP_SHARED_MATH_TESTS
- LIBC_TEST_CHECK_LIBC_BUILD_ONLY

Added: 
    

Modified: 
    libc/cmake/modules/LLVMLibCTestRules.cmake
    libc/test/CMakeLists.txt
    libc/test/UnitTest/LibcTest.h
    libc/test/shared/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/libc/cmake/modules/LLVMLibCTestRules.cmake b/libc/cmake/modules/LLVMLibCTestRules.cmake
index 89db3f0af50e0..25f40da8d0781 100644
--- a/libc/cmake/modules/LLVMLibCTestRules.cmake
+++ b/libc/cmake/modules/LLVMLibCTestRules.cmake
@@ -19,6 +19,15 @@ function(_get_common_test_compile_options output_var c_test flags)
       ${config_flags}
       ${arch_flags})
 
+  # EXPECT_DEATH and ASSERT_DEATH might be quite slow.  LIBC_TEST_SKIP_DEATH_TESTS
+  # will make those tests no-op to reduce the overall test time.
+  if(LIBC_TEST_SKIP_DEATH_TESTS)
+    if(LIBC_CMAKE_VERBOSE_LOGGING)
+      message(STATUS "LIBC_TEST_SKIP_DEATH_TESTS is set.  EXPECT_DEATH/ASSERT_DEATH are no-op.")
+    endif()
+    list(APPEND compile_options "-DLIBC_TEST_SKIP_DEATH_TESTS")
+  endif()
+
   if(LLVM_LIBC_COMPILER_IS_GCC_COMPATIBLE)
     list(APPEND compile_options "-fpie")
 

diff  --git a/libc/test/CMakeLists.txt b/libc/test/CMakeLists.txt
index de14aaf97de76..09a60427b157f 100644
--- a/libc/test/CMakeLists.txt
+++ b/libc/test/CMakeLists.txt
@@ -26,20 +26,22 @@ configure_lit_site_cfg(
   "CMAKE_CROSSCOMPILING_EMULATOR"
 )
 
+add_custom_target(check-libc-build)
 add_lit_testsuite(check-libc
   "Running libc tests via lit"
   ${LIBC_BUILD_DIR}/test
 )
+add_dependencies(check-libc check-libc-build)
 
 if (TARGET check-hdrgen)
   add_dependencies(check-libc check-hdrgen)
 endif()
 
 if(LIBC_ENABLE_UNITTESTS AND NOT LIBC_TEST_HERMETIC_TEST_ONLY)
-  add_dependencies(check-libc libc-unit-tests-build)
+  add_dependencies(check-libc-build libc-unit-tests-build)
 endif()
 if(LIBC_ENABLE_HERMETIC_TESTS AND NOT LIBC_TEST_UNIT_TEST_ONLY)
-  add_dependencies(check-libc libc-hermetic-tests-build)
+  add_dependencies(check-libc-build libc-hermetic-tests-build)
 endif()
 
 add_subdirectory(UnitTest)

diff  --git a/libc/test/UnitTest/LibcTest.h b/libc/test/UnitTest/LibcTest.h
index 8e41d3eeefcd5..133c198d42f15 100644
--- a/libc/test/UnitTest/LibcTest.h
+++ b/libc/test/UnitTest/LibcTest.h
@@ -495,11 +495,20 @@ CString libc_make_test_file_path_func(const char *file_name);
 #define ASSERT_EXITS(FUNC, EXIT)                                               \
   LIBC_TEST_PROCESS_(testProcessExits, FUNC, EXIT, return)
 
+#ifdef LIBC_TEST_SKIP_DEATH_TESTS
+
+#define EXPECT_DEATH(FUNC, SIG)
+#define ASSERT_DEATH(FUNC, SIG)
+
+#else
+
 #define EXPECT_DEATH(FUNC, SIG)                                                \
   LIBC_TEST_PROCESS_(testProcessKilled, FUNC, SIG, )
 #define ASSERT_DEATH(FUNC, SIG)                                                \
   LIBC_TEST_PROCESS_(testProcessKilled, FUNC, SIG, return)
 
+#endif // LIBC_TEST_SKIP_DEATH_TESTS
+
 #endif // ENABLE_SUBPROCESS_TESTS
 
 ////////////////////////////////////////////////////////////////////////////////

diff  --git a/libc/test/shared/CMakeLists.txt b/libc/test/shared/CMakeLists.txt
index e86b0a45eb77c..7a5c3a369c2fc 100644
--- a/libc/test/shared/CMakeLists.txt
+++ b/libc/test/shared/CMakeLists.txt
@@ -1,5 +1,15 @@
 add_custom_target(libc-shared-tests)
 
+# Shared math tests include the entire math library headers into a single file
+# so it might take some time to compile the tests.  We do have dedicated
+# precommit CIs to build and test shared tests.  So we provide a cmake option
+# LIBC_TEST_SKIP_SHARED_TESTS to reduce redundant testings and reduce test time
+# for other precommit CIs.
+if(LIBC_TEST_SKIP_SHARED_TESTS)
+  if(LIBC_CMAKE_VERBOSE_LOGGING)
+    message(STATUS "LIBC_TEST_SKIP_SHARED_MATH_TESTS is set.  Skipping libc-shared-tests.")
+  endif()
+else()
 add_fp_unittest(
   shared_math_test
   SUITE
@@ -802,6 +812,7 @@ add_fp_unittest(
     libc.src.__support.math.totalordermagf16
     libc.src.__support.math.totalordermagl
 )
+endif() # LIBC_TEST_SKIP_SHARED_MATH_TESTS
 
 add_fp_unittest(
   shared_str_to_num_test


        


More information about the libc-commits mailing list