[libc-commits] [libc] 6d3b72a - [libc] Pass config flags to unit tests. (#142085)

via libc-commits libc-commits at lists.llvm.org
Fri May 30 07:00:18 PDT 2025


Author: lntue
Date: 2025-05-30T10:00:14-04:00
New Revision: 6d3b72aa6e98bccffbb3a02cbace314ccc7faa35

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

LOG: [libc] Pass config flags to unit tests. (#142085)

Added: 
    

Modified: 
    libc/cmake/modules/LLVMLibCTestRules.cmake
    libc/test/src/math/smoke/nan_test.cpp
    libc/test/src/math/smoke/nanf128_test.cpp
    libc/test/src/math/smoke/nanf16_test.cpp
    libc/test/src/math/smoke/nanf_test.cpp
    libc/test/src/math/smoke/nanl_test.cpp
    libc/test/src/stdfix/IdivTest.h

Removed: 
    


################################################################################
diff  --git a/libc/cmake/modules/LLVMLibCTestRules.cmake b/libc/cmake/modules/LLVMLibCTestRules.cmake
index 3f804694b5bae..54f337ecf0999 100644
--- a/libc/cmake/modules/LLVMLibCTestRules.cmake
+++ b/libc/cmake/modules/LLVMLibCTestRules.cmake
@@ -1,15 +1,22 @@
 function(_get_common_test_compile_options output_var c_test flags)
   _get_compile_options_from_flags(compile_flags ${flags})
+  _get_compile_options_from_config(config_flags)
 
   # Remove -fno-math-errno if it was added.
   if(LIBC_ADD_FNO_MATH_ERRNO)
-    list(REMOVE_ITEM compile_options "-fno-math-errno")
+    list(REMOVE_ITEM compile_flags "-fno-math-errno")
+  endif()
+
+  # Death test executor is only available in Linux for now.
+  if(NOT ${LIBC_TARGET_OS} STREQUAL "linux")
+    list(REMOVE_ITEM config_flags "-DLIBC_ADD_NULL_CHECKS")
   endif()
 
   set(compile_options
       ${LIBC_COMPILE_OPTIONS_DEFAULT}
       ${LIBC_TEST_COMPILE_OPTIONS_DEFAULT}
-      ${compile_flags})
+      ${compile_flags}
+      ${config_flags})
 
   if(LLVM_LIBC_COMPILER_IS_GCC_COMPATIBLE)
     list(APPEND compile_options "-fpie")
@@ -65,6 +72,11 @@ endfunction()
 function(_get_hermetic_test_compile_options output_var)
   _get_common_test_compile_options(compile_options "" "")
 
+  # null check tests are death tests, remove from hermetic tests for now.
+  if(LIBC_ADD_NULL_CHECKS)
+    list(REMOVE_ITEM compile_options "-DLIBC_ADD_NULL_CHECKS")
+  endif()
+
   # The GPU build requires overriding the default CMake triple and architecture.
   if(LIBC_TARGET_ARCHITECTURE_IS_AMDGPU)
     list(APPEND compile_options

diff  --git a/libc/test/src/math/smoke/nan_test.cpp b/libc/test/src/math/smoke/nan_test.cpp
index e45e2e6d499a2..e8376c03e92fd 100644
--- a/libc/test/src/math/smoke/nan_test.cpp
+++ b/libc/test/src/math/smoke/nan_test.cpp
@@ -46,6 +46,6 @@ TEST_F(LlvmLibcNanTest, RandomString) {
 
 #if defined(LIBC_ADD_NULL_CHECKS) && !defined(LIBC_HAS_SANITIZER)
 TEST_F(LlvmLibcNanTest, InvalidInput) {
-  EXPECT_DEATH([] { LIBC_NAMESPACE::nan(nullptr); });
+  EXPECT_DEATH([] { LIBC_NAMESPACE::nan(nullptr); }, WITH_SIGNAL(-1));
 }
 #endif // LIBC_HAS_ADDRESS_SANITIZER

diff  --git a/libc/test/src/math/smoke/nanf128_test.cpp b/libc/test/src/math/smoke/nanf128_test.cpp
index aa59b79aac9d8..a63ce88524a1d 100644
--- a/libc/test/src/math/smoke/nanf128_test.cpp
+++ b/libc/test/src/math/smoke/nanf128_test.cpp
@@ -57,6 +57,6 @@ TEST_F(LlvmLibcNanf128Test, RandomString) {
 
 #if defined(LIBC_ADD_NULL_CHECKS) && !defined(LIBC_HAS_SANITIZER)
 TEST_F(LlvmLibcNanf128Test, InvalidInput) {
-  EXPECT_DEATH([] { LIBC_NAMESPACE::nanf128(nullptr); });
+  EXPECT_DEATH([] { LIBC_NAMESPACE::nanf128(nullptr); }, WITH_SIGNAL(-1));
 }
 #endif // LIBC_HAS_ADDRESS_SANITIZER

diff  --git a/libc/test/src/math/smoke/nanf16_test.cpp b/libc/test/src/math/smoke/nanf16_test.cpp
index 04a8c7bb5d933..694470b7f7fec 100644
--- a/libc/test/src/math/smoke/nanf16_test.cpp
+++ b/libc/test/src/math/smoke/nanf16_test.cpp
@@ -45,6 +45,6 @@ TEST_F(LlvmLibcNanf16Test, RandomString) {
 
 #if defined(LIBC_ADD_NULL_CHECKS) && !defined(LIBC_HAS_SANITIZER)
 TEST_F(LlvmLibcNanf16Test, InvalidInput) {
-  EXPECT_DEATH([] { LIBC_NAMESPACE::nanf16(nullptr); });
+  EXPECT_DEATH([] { LIBC_NAMESPACE::nanf16(nullptr); }, WITH_SIGNAL(-1));
 }
 #endif // LIBC_HAS_ADDRESS_SANITIZER

diff  --git a/libc/test/src/math/smoke/nanf_test.cpp b/libc/test/src/math/smoke/nanf_test.cpp
index 40e90c48d8cda..cb57f65e70943 100644
--- a/libc/test/src/math/smoke/nanf_test.cpp
+++ b/libc/test/src/math/smoke/nanf_test.cpp
@@ -45,6 +45,6 @@ TEST_F(LlvmLibcNanfTest, RandomString) {
 
 #if defined(LIBC_ADD_NULL_CHECKS) && !defined(LIBC_HAS_SANITIZER)
 TEST_F(LlvmLibcNanfTest, InvalidInput) {
-  EXPECT_DEATH([] { LIBC_NAMESPACE::nanf(nullptr); });
+  EXPECT_DEATH([] { LIBC_NAMESPACE::nanf(nullptr); }, WITH_SIGNAL(-1));
 }
 #endif // LIBC_HAS_ADDRESS_SANITIZER

diff  --git a/libc/test/src/math/smoke/nanl_test.cpp b/libc/test/src/math/smoke/nanl_test.cpp
index dea969fd3d2ad..3bcb914935954 100644
--- a/libc/test/src/math/smoke/nanl_test.cpp
+++ b/libc/test/src/math/smoke/nanl_test.cpp
@@ -73,6 +73,6 @@ TEST_F(LlvmLibcNanlTest, RandomString) {
 
 #if defined(LIBC_ADD_NULL_CHECKS) && !defined(LIBC_HAS_SANITIZER)
 TEST_F(LlvmLibcNanlTest, InvalidInput) {
-  EXPECT_DEATH([] { LIBC_NAMESPACE::nanl(nullptr); });
+  EXPECT_DEATH([] { LIBC_NAMESPACE::nanl(nullptr); }, WITH_SIGNAL(-1));
 }
 #endif // LIBC_HAS_ADDRESS_SANITIZER

diff  --git a/libc/test/src/stdfix/IdivTest.h b/libc/test/src/stdfix/IdivTest.h
index 6bfe9dff01a39..0e9cc40ecdf1d 100644
--- a/libc/test/src/stdfix/IdivTest.h
+++ b/libc/test/src/stdfix/IdivTest.h
@@ -64,15 +64,15 @@ class IdivTest : public LIBC_NAMESPACE::testing::Test {
   void testInvalidNumbers(IdivFunc func) {
     constexpr bool has_integral = (FXRep::INTEGRAL_LEN > 0);
 
-    EXPECT_DEATH([func] { func(0.5, 0.0); }, WITH_SIGNAL(SIGILL));
+    EXPECT_DEATH([func] { func(0.5, 0.0); }, WITH_SIGNAL(-1));
     if constexpr (has_integral) {
-      EXPECT_DEATH([func] { func(2.5, 0.0); }, WITH_SIGNAL(SIGSEGV));
+      EXPECT_DEATH([func] { func(2.5, 0.0); }, WITH_SIGNAL(-1));
     }
   }
 };
 
 #if defined(LIBC_ADD_NULL_CHECKS) && !defined(LIBC_HAS_SANITIZER)
-#define LIST_IDIV_TESTS(Name, T, XTYpe, func)                                  \
+#define LIST_IDIV_TESTS(Name, T, XType, func)                                  \
   using LlvmLibcIdiv##Name##Test = IdivTest<T, XType>;                         \
   TEST_F(LlvmLibcIdiv##Name##Test, InvalidNumbers) {                           \
     testInvalidNumbers(&func);                                                 \


        


More information about the libc-commits mailing list