diff --git a/libc/cmake/modules/LLVMLibCTestRules.cmake b/libc/cmake/modules/LLVMLibCTestRules.cmake --- a/libc/cmake/modules/LLVMLibCTestRules.cmake +++ b/libc/cmake/modules/LLVMLibCTestRules.cmake @@ -201,6 +201,7 @@ ${fq_target_name} ) endif() + add_dependencies(libc-unit-tests ${fq_target_name}) endfunction(create_libc_unittest) # Internal function, used by `add_libc_unittest`. @@ -298,11 +299,6 @@ ) endfunction(add_libc_unittest) -function(add_libc_testsuite suite_name) - add_custom_target(${suite_name}) - add_dependencies(libc-unit-tests ${suite_name}) -endfunction(add_libc_testsuite) - function(add_libc_exhaustive_testsuite suite_name) add_custom_target(${suite_name}) add_dependencies(exhaustive-check-libc ${suite_name}) diff --git a/libc/test/src/__support/CMakeLists.txt b/libc/test/src/__support/CMakeLists.txt --- a/libc/test/src/__support/CMakeLists.txt +++ b/libc/test/src/__support/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_support_unittests) +add_custom_target(libc_support_unittests) add_libc_unittest( blockstore_test diff --git a/libc/test/src/__support/CPP/CMakeLists.txt b/libc/test/src/__support/CPP/CMakeLists.txt --- a/libc/test/src/__support/CPP/CMakeLists.txt +++ b/libc/test/src/__support/CPP/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_cpp_utils_unittests) +add_custom_target(libc_cpp_utils_unittests) add_libc_unittest( bitset_test diff --git a/libc/test/src/__support/FPUtil/CMakeLists.txt b/libc/test/src/__support/FPUtil/CMakeLists.txt --- a/libc/test/src/__support/FPUtil/CMakeLists.txt +++ b/libc/test/src/__support/FPUtil/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_fputil_unittests) +add_custom_target(libc_fputil_unittests) add_fp_unittest( dyadic_float_test diff --git a/libc/test/src/__support/OSUtil/CMakeLists.txt b/libc/test/src/__support/OSUtil/CMakeLists.txt --- a/libc/test/src/__support/OSUtil/CMakeLists.txt +++ b/libc/test/src/__support/OSUtil/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_osutil_tests) +add_custom_target(libc_osutil_tests) if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS}) add_subdirectory(${LIBC_TARGET_OS}) diff --git a/libc/test/src/assert/CMakeLists.txt b/libc/test/src/assert/CMakeLists.txt --- a/libc/test/src/assert/CMakeLists.txt +++ b/libc/test/src/assert/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_assert_unittests) +add_custom_target(libc_assert_unittests) add_libc_unittest( assert_test diff --git a/libc/test/src/ctype/CMakeLists.txt b/libc/test/src/ctype/CMakeLists.txt --- a/libc/test/src/ctype/CMakeLists.txt +++ b/libc/test/src/ctype/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_ctype_unittests) +add_custom_target(libc_ctype_unittests) add_libc_unittest( isalnum_test diff --git a/libc/test/src/dirent/CMakeLists.txt b/libc/test/src/dirent/CMakeLists.txt --- a/libc/test/src/dirent/CMakeLists.txt +++ b/libc/test/src/dirent/CMakeLists.txt @@ -1,5 +1,5 @@ add_subdirectory(testdata) -add_libc_testsuite(libc_dirent_unittests) +add_custom_target(libc_dirent_unittests) add_libc_unittest( dirent_test diff --git a/libc/test/src/errno/CMakeLists.txt b/libc/test/src/errno/CMakeLists.txt --- a/libc/test/src/errno/CMakeLists.txt +++ b/libc/test/src/errno/CMakeLists.txt @@ -2,7 +2,7 @@ return() endif() -add_libc_testsuite(libc_errno_unittests) +add_custom_target(libc_errno_unittests) add_libc_unittest( errno_test diff --git a/libc/test/src/fcntl/CMakeLists.txt b/libc/test/src/fcntl/CMakeLists.txt --- a/libc/test/src/fcntl/CMakeLists.txt +++ b/libc/test/src/fcntl/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_fcntl_unittests) +add_custom_target(libc_fcntl_unittests) add_subdirectory(testdata) diff --git a/libc/test/src/fenv/CMakeLists.txt b/libc/test/src/fenv/CMakeLists.txt --- a/libc/test/src/fenv/CMakeLists.txt +++ b/libc/test/src/fenv/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_fenv_unittests) +add_custom_target(libc_fenv_unittests) add_libc_unittest( rounding_mode_test diff --git a/libc/test/src/inttypes/CMakeLists.txt b/libc/test/src/inttypes/CMakeLists.txt --- a/libc/test/src/inttypes/CMakeLists.txt +++ b/libc/test/src/inttypes/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_inttypes_unittests) +add_custom_target(libc_inttypes_unittests) add_libc_unittest( strtoimax_test diff --git a/libc/test/src/math/CMakeLists.txt b/libc/test/src/math/CMakeLists.txt --- a/libc/test/src/math/CMakeLists.txt +++ b/libc/test/src/math/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_math_unittests) +add_custom_target(libc_math_unittests) add_library( libc_math_test_utils @@ -1571,5 +1571,8 @@ ) add_subdirectory(generic) -add_subdirectory(exhaustive) -add_subdirectory(differential_testing) + +if(NOT LLVM_LIBC_FULL_BUILD) + add_subdirectory(exhaustive) + add_subdirectory(differential_testing) +endif() diff --git a/libc/test/src/network/CMakeLists.txt b/libc/test/src/network/CMakeLists.txt --- a/libc/test/src/network/CMakeLists.txt +++ b/libc/test/src/network/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_network_unittests) +add_custom_target(libc_network_unittests) add_libc_unittest( htonl diff --git a/libc/test/src/pthread/CMakeLists.txt b/libc/test/src/pthread/CMakeLists.txt --- a/libc/test/src/pthread/CMakeLists.txt +++ b/libc/test/src/pthread/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_pthread_unittests) +add_custom_target(libc_pthread_unittests) add_libc_unittest( pthread_attr_test diff --git a/libc/test/src/sched/CMakeLists.txt b/libc/test/src/sched/CMakeLists.txt --- a/libc/test/src/sched/CMakeLists.txt +++ b/libc/test/src/sched/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_sched_unittests) +add_custom_target(libc_sched_unittests) add_libc_unittest( affinity_test diff --git a/libc/test/src/setjmp/CMakeLists.txt b/libc/test/src/setjmp/CMakeLists.txt --- a/libc/test/src/setjmp/CMakeLists.txt +++ b/libc/test/src/setjmp/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_setjmp_unittests) +add_custom_target(libc_setjmp_unittests) # Skip setjmp tests under sanitizers if(LLVM_USE_SANITIZER) diff --git a/libc/test/src/signal/CMakeLists.txt b/libc/test/src/signal/CMakeLists.txt --- a/libc/test/src/signal/CMakeLists.txt +++ b/libc/test/src/signal/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_signal_unittests) +add_custom_target(libc_signal_unittests) add_libc_unittest( raise_test diff --git a/libc/test/src/spawn/CMakeLists.txt b/libc/test/src/spawn/CMakeLists.txt --- a/libc/test/src/spawn/CMakeLists.txt +++ b/libc/test/src/spawn/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_spawn_unittests) +add_custom_target(libc_spawn_unittests) add_libc_unittest( posix_spawn_file_actions_test diff --git a/libc/test/src/stdio/CMakeLists.txt b/libc/test/src/stdio/CMakeLists.txt --- a/libc/test/src/stdio/CMakeLists.txt +++ b/libc/test/src/stdio/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_stdio_unittests) +add_custom_target(libc_stdio_unittests) add_libc_unittest( fileop_test diff --git a/libc/test/src/stdlib/CMakeLists.txt b/libc/test/src/stdlib/CMakeLists.txt --- a/libc/test/src/stdlib/CMakeLists.txt +++ b/libc/test/src/stdlib/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_stdlib_unittests) +add_custom_target(libc_stdlib_unittests) add_libc_unittest( atof_test diff --git a/libc/test/src/string/CMakeLists.txt b/libc/test/src/string/CMakeLists.txt --- a/libc/test/src/string/CMakeLists.txt +++ b/libc/test/src/string/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_string_unittests) +add_custom_target(libc_string_unittests) add_subdirectory(memory_utils) diff --git a/libc/test/src/sys/mman/linux/CMakeLists.txt b/libc/test/src/sys/mman/linux/CMakeLists.txt --- a/libc/test/src/sys/mman/linux/CMakeLists.txt +++ b/libc/test/src/sys/mman/linux/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_sys_mman_unittests) +add_custom_target(libc_sys_mman_unittests) add_libc_unittest( mmap_test diff --git a/libc/test/src/sys/random/linux/CMakeLists.txt b/libc/test/src/sys/random/linux/CMakeLists.txt --- a/libc/test/src/sys/random/linux/CMakeLists.txt +++ b/libc/test/src/sys/random/linux/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_sys_random_unittests) +add_custom_target(libc_sys_random_unittests) add_libc_unittest( getrandom_test diff --git a/libc/test/src/sys/resource/CMakeLists.txt b/libc/test/src/sys/resource/CMakeLists.txt --- a/libc/test/src/sys/resource/CMakeLists.txt +++ b/libc/test/src/sys/resource/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_sys_resource_unittests) +add_custom_target(libc_sys_resource_unittests) add_subdirectory(testdata) diff --git a/libc/test/src/sys/select/CMakeLists.txt b/libc/test/src/sys/select/CMakeLists.txt --- a/libc/test/src/sys/select/CMakeLists.txt +++ b/libc/test/src/sys/select/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_sys_select_unittests) +add_custom_target(libc_sys_select_unittests) add_libc_unittest( select_ui_test diff --git a/libc/test/src/sys/sendfile/CMakeLists.txt b/libc/test/src/sys/sendfile/CMakeLists.txt --- a/libc/test/src/sys/sendfile/CMakeLists.txt +++ b/libc/test/src/sys/sendfile/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_sys_sendfile_unittests) +add_custom_target(libc_sys_sendfile_unittests) add_subdirectory(testdata) diff --git a/libc/test/src/sys/stat/CMakeLists.txt b/libc/test/src/sys/stat/CMakeLists.txt --- a/libc/test/src/sys/stat/CMakeLists.txt +++ b/libc/test/src/sys/stat/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_sys_stat_unittests) +add_custom_target(libc_sys_stat_unittests) add_subdirectory(testdata) diff --git a/libc/test/src/sys/utsname/CMakeLists.txt b/libc/test/src/sys/utsname/CMakeLists.txt --- a/libc/test/src/sys/utsname/CMakeLists.txt +++ b/libc/test/src/sys/utsname/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_sys_utsname_unittests) +add_custom_target(libc_sys_utsname_unittests) add_libc_unittest( uname_test diff --git a/libc/test/src/sys/wait/CMakeLists.txt b/libc/test/src/sys/wait/CMakeLists.txt --- a/libc/test/src/sys/wait/CMakeLists.txt +++ b/libc/test/src/sys/wait/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_sys_wait_unittests) +add_custom_target(libc_sys_wait_unittests) add_libc_unittest( waitpid_test diff --git a/libc/test/src/termios/CMakeLists.txt b/libc/test/src/termios/CMakeLists.txt --- a/libc/test/src/termios/CMakeLists.txt +++ b/libc/test/src/termios/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_termios_unittests) +add_custom_target(libc_termios_unittests) add_libc_unittest( termios_test diff --git a/libc/test/src/time/CMakeLists.txt b/libc/test/src/time/CMakeLists.txt --- a/libc/test/src/time/CMakeLists.txt +++ b/libc/test/src/time/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_time_unittests) +add_custom_target(libc_time_unittests) add_libc_unittest( asctime diff --git a/libc/test/src/unistd/CMakeLists.txt b/libc/test/src/unistd/CMakeLists.txt --- a/libc/test/src/unistd/CMakeLists.txt +++ b/libc/test/src/unistd/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_unistd_unittests) +add_custom_target(libc_unistd_unittests) add_subdirectory(testdata) diff --git a/libc/test/src/wchar/CMakeLists.txt b/libc/test/src/wchar/CMakeLists.txt --- a/libc/test/src/wchar/CMakeLists.txt +++ b/libc/test/src/wchar/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_wchar_unittests) +add_custom_target(libc_wchar_unittests) add_libc_unittest( btowc_test diff --git a/libc/test/utils/FPUtil/x86_long_double_test.cpp b/libc/test/utils/FPUtil/x86_long_double_test.cpp --- a/libc/test/utils/FPUtil/x86_long_double_test.cpp +++ b/libc/test/utils/FPUtil/x86_long_double_test.cpp @@ -13,7 +13,7 @@ using FPBits = __llvm_libc::fputil::FPBits; -TEST(X86LongDoubleTest, is_nan) { +TEST(LlvmLibcX86LongDoubleTest, is_nan) { // In the nan checks below, we use the macro isnan from math.h to ensure that // a number is actually a NaN. The isnan macro resolves to the compiler // builtin function. Hence, matching LLVM-libc's notion of NaN with the @@ -21,66 +21,66 @@ // behavior. FPBits bits(0.0l); - bits.exponent = FPBits::MAX_EXPONENT; + bits.set_unbiased_exponent(FPBits::MAX_EXPONENT); for (unsigned int i = 0; i < 1000000; ++i) { // If exponent has the max value and the implicit bit is 0, // then the number is a NaN for all values of mantissa. - bits.mantissa = i; + bits.set_mantissa(i); long double nan = bits; - ASSERT_NE(isnan(nan), 0); + ASSERT_NE(static_cast(isnan(nan)), 0); ASSERT_TRUE(bits.is_nan()); } - bits.implicitBit = 1; + bits.set_implicit_bit(1); for (unsigned int i = 1; i < 1000000; ++i) { // If exponent has the max value and the implicit bit is 1, // then the number is a NaN for all non-zero values of mantissa. // Note the initial value of |i| of 1 to avoid a zero mantissa. - bits.mantissa = i; + bits.set_mantissa(i); long double nan = bits; - ASSERT_NE(isnan(nan), 0); + ASSERT_NE(static_cast(isnan(nan)), 0); ASSERT_TRUE(bits.is_nan()); } - bits.exponent = 1; - bits.implicitBit = 0; + bits.set_unbiased_exponent(1); + bits.set_implicit_bit(0); for (unsigned int i = 0; i < 1000000; ++i) { // If exponent is non-zero and also not max, and the implicit bit is 0, // then the number is a NaN for all values of mantissa. - bits.mantissa = i; + bits.set_mantissa(i); long double nan = bits; - ASSERT_NE(isnan(nan), 0); + ASSERT_NE(static_cast(isnan(nan)), 0); ASSERT_TRUE(bits.is_nan()); } - bits.exponent = 1; - bits.implicitBit = 1; + bits.set_unbiased_exponent(1); + bits.set_implicit_bit(1); for (unsigned int i = 0; i < 1000000; ++i) { // If exponent is non-zero and also not max, and the implicit bit is 1, // then the number is normal value for all values of mantissa. - bits.mantissa = i; + bits.set_mantissa(i); long double valid = bits; - ASSERT_EQ(isnan(valid), 0); + ASSERT_EQ(static_cast(isnan(valid)), 0); ASSERT_FALSE(bits.is_nan()); } - bits.exponent = 0; - bits.implicitBit = 1; + bits.set_unbiased_exponent(0); + bits.set_implicit_bit(1); for (unsigned int i = 0; i < 1000000; ++i) { // If exponent is zero, then the number is a valid but denormal value. - bits.mantissa = i; + bits.set_mantissa(i); long double valid = bits; - ASSERT_EQ(isnan(valid), 0); + ASSERT_EQ(static_cast(isnan(valid)), 0); ASSERT_FALSE(bits.is_nan()); } - bits.exponent = 0; - bits.implicitBit = 0; + bits.set_unbiased_exponent(0); + bits.set_implicit_bit(0); for (unsigned int i = 0; i < 1000000; ++i) { // If exponent is zero, then the number is a valid but denormal value. - bits.mantissa = i; + bits.set_mantissa(i); long double valid = bits; - ASSERT_EQ(isnan(valid), 0); + ASSERT_EQ(static_cast(isnan(valid)), 0); ASSERT_FALSE(bits.is_nan()); } } diff --git a/libc/test/utils/UnitTest/CMakeLists.txt b/libc/test/utils/UnitTest/CMakeLists.txt --- a/libc/test/utils/UnitTest/CMakeLists.txt +++ b/libc/test/utils/UnitTest/CMakeLists.txt @@ -1,4 +1,4 @@ -add_libc_testsuite(libc_unittest_tests) +add_custom_target(libc_unittest_tests) add_libc_unittest( testfilter_test