diff --git a/libc/test/UnitTest/RoundingModeUtils.cpp b/libc/test/UnitTest/RoundingModeUtils.cpp --- a/libc/test/UnitTest/RoundingModeUtils.cpp +++ b/libc/test/UnitTest/RoundingModeUtils.cpp @@ -8,7 +8,7 @@ #include "RoundingModeUtils.h" -#include +#include "src/__support/FPUtil/FEnvImpl.h" namespace __llvm_libc { namespace fputil { @@ -34,15 +34,15 @@ } ForceRoundingMode::ForceRoundingMode(RoundingMode mode) { - old_rounding_mode = fegetround(); + old_rounding_mode = fputil::get_round(); rounding_mode = get_fe_rounding(mode); if (old_rounding_mode != rounding_mode) - fesetround(rounding_mode); + fputil::set_round(rounding_mode); } ForceRoundingMode::~ForceRoundingMode() { if (old_rounding_mode != rounding_mode) - fesetround(old_rounding_mode); + fputil::set_round(old_rounding_mode); } } // namespace testing diff --git a/libc/test/src/CMakeLists.txt b/libc/test/src/CMakeLists.txt --- a/libc/test/src/CMakeLists.txt +++ b/libc/test/src/CMakeLists.txt @@ -26,6 +26,23 @@ ) endfunction(add_fp_unittest) +function(add_fp_test name) + cmake_parse_arguments( + "MATH_TEST" + "" # Optional arguments + "" # Single value arguments + "LINK_LIBRARIES" # Multi-value arguments + ${ARGN} + ) + + list(APPEND MATH_TEST_LINK_LIBRARIES LibcFPTestHelpers) + add_libc_test( + ${name} + LINK_LIBRARIES "${MATH_TEST_LINK_LIBRARIES}" + "${MATH_TEST_UNPARSED_ARGUMENTS}" + ) +endfunction(add_fp_test) + add_subdirectory(__support) add_subdirectory(ctype) add_subdirectory(errno) 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,9 +1,9 @@ -add_custom_target(libc_stdlib_unittests) +add_custom_target(libc-stdlib-tests) -add_libc_unittest( +add_libc_test( atof_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS atof_test.cpp DEPENDS @@ -20,10 +20,10 @@ libc.src.__support.CPP.type_traits ) -add_libc_unittest( +add_libc_test( atoi_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS atoi_test.cpp DEPENDS @@ -31,10 +31,10 @@ libc.src.stdlib.atoi ) -add_libc_unittest( +add_libc_test( atol_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS atol_test.cpp DEPENDS @@ -42,10 +42,10 @@ libc.src.stdlib.atol ) -add_libc_unittest( +add_libc_test( atoll_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS atoll_test.cpp DEPENDS @@ -53,26 +53,28 @@ libc.src.stdlib.atoll ) -add_fp_unittest( +add_fp_test( strtod_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS strtod_test.cpp DEPENDS libc.src.errno.errno libc.src.stdlib.strtod + libc.src.__support.FPUtil.fenv_impl ) -add_fp_unittest( +add_fp_test( strtof_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS strtof_test.cpp DEPENDS libc.src.errno.errno libc.src.stdlib.strtof + libc.src.__support.FPUtil.fenv_impl ) add_header_library( @@ -85,10 +87,10 @@ libc.src.errno.errno ) -add_libc_unittest( +add_libc_test( strtol_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS strtol_test.cpp DEPENDS @@ -96,22 +98,24 @@ .strtol_test_support ) -add_libc_unittest( +add_libc_test( strtold_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS strtold_test.cpp DEPENDS libc.src.errno.errno libc.src.__support.uint128 libc.src.stdlib.strtold + COMPILE_FLAGS + -fno-builtin ) -add_libc_unittest( +add_libc_test( strtoll_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS strtoll_test.cpp DEPENDS @@ -119,10 +123,10 @@ .strtol_test_support ) -add_libc_unittest( +add_libc_test( strtoul_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS strtoul_test.cpp DEPENDS @@ -130,10 +134,10 @@ .strtol_test_support ) -add_libc_unittest( +add_libc_test( strtoull_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS strtoull_test.cpp DEPENDS @@ -141,40 +145,40 @@ .strtol_test_support ) -add_libc_unittest( +add_libc_test( abs_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS abs_test.cpp DEPENDS libc.src.stdlib.abs ) -add_libc_unittest( +add_libc_test( labs_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS labs_test.cpp DEPENDS libc.src.stdlib.labs ) -add_libc_unittest( +add_libc_test( llabs_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS llabs_test.cpp DEPENDS libc.src.stdlib.llabs ) -add_libc_unittest( +add_libc_test( div_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS div_test.cpp HDRS @@ -184,10 +188,10 @@ libc.src.stdlib.div ) -add_libc_unittest( +add_libc_test( ldiv_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS ldiv_test.cpp HDRS @@ -197,10 +201,10 @@ libc.src.stdlib.ldiv ) -add_libc_unittest( +add_libc_test( lldiv_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS lldiv_test.cpp HDRS @@ -210,10 +214,10 @@ libc.src.stdlib.lldiv ) -add_libc_unittest( +add_libc_test( bsearch_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS bsearch_test.cpp DEPENDS @@ -221,10 +225,10 @@ libc.src.stdlib.bsearch ) -add_libc_unittest( +add_libc_test( qsort_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS qsort_test.cpp DEPENDS @@ -232,10 +236,10 @@ libc.src.stdlib.qsort ) -add_libc_unittest( +add_libc_test( rand_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS rand_test.cpp DEPENDS @@ -246,22 +250,24 @@ if(LLVM_LIBC_FULL_BUILD) - add_libc_unittest( + add_libc_test( _Exit_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS _Exit_test.cpp DEPENDS libc.include.stdlib libc.src.stdlib._Exit libc.src.stdlib.exit + # The EXPECT_EXITS test is only availible for unit tests. + UNIT_TEST_ONLY ) - add_libc_unittest( + add_libc_test( atexit_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS atexit_test.cpp DEPENDS @@ -271,12 +277,14 @@ libc.src.stdlib.atexit libc.src.__support.CPP.array libc.src.__support.CPP.utility + # The EXPECT_EXITS test is only availible for unit tests. + UNIT_TEST_ONLY ) - add_libc_unittest( + add_libc_test( abort_test SUITE - libc_stdlib_unittests + libc-stdlib-tests SRCS abort_test.cpp DEPENDS @@ -285,6 +293,8 @@ libc.src.stdlib.abort libc.src.stdlib._Exit libc.src.signal.raise + # The EXPECT_DEATH test is only availible for unit tests. + UNIT_TEST_ONLY ) endif()