llvm-project/libc/test/include/CMakeLists.txt
Akiel 3604c23dfc
[libc][math] implement signbit and math macro unit tests (#97791)
This PR resolves #96322 and implements the `signbit` macro under a new
header `generic-math-macros.h`. This also removed the `TODO` in
`math-macros.h` and moves `isfinite`, `isinf`, and `isnan` to the same
generic maths header. Finally, a test file
`generic-math-macros_test.cpp` that adds coverage to the above 4 macros.

Fixes #96322.
2024-07-13 23:01:36 -04:00

263 lines
4.7 KiB
CMake

add_custom_target(libc_include_tests)
add_dependencies(check-libc libc_include_tests)
add_libc_test(
assert_test
SUITE
libc_include_tests
SRCS
assert_test.cpp
DEPENDS
libc.include.llvm-libc-macros.assert_macros
)
add_libc_test(
sys_queue_test
SUITE
libc_include_tests
SRCS
sys/queue_test.cpp
DEPENDS
libc.include.llvm-libc-macros.sys_queue_macros
libc.src.__support.char_vector
libc.src.__support.CPP.string
COMPILE_OPTIONS
# This is needed because the __containerof macro uses statement expression.
-Wno-gnu-statement-expression-from-macro-expansion
)
# stdbit_test only tests our generated stdbit.h, which is not generated in
# overlay mode.
if(LLVM_LIBC_FULL_BUILD AND libc.include.stdbit IN_LIST TARGET_PUBLIC_HEADERS)
add_libc_test(
stdbit_test
SUITE
libc_include_tests
HDRS
stdbit_stub.h
SRCS
stdbit_test.cpp
DEPENDS
libc.include.llvm-libc-macros.stdbit_macros
libc.include.llvm_libc_common_h
libc.include.stdbit
# Intentionally do not depend on libc.src.stdbit.*. The include test is
# simply testing the macros provided by stdbit.h, not the implementation
# of the underlying functions which the type generic macros may dispatch
# to.
)
add_libc_test(
stdbit_c_test
C_TEST
UNIT_TEST_ONLY
SUITE
libc_include_tests
HDRS
stdbit_stub.h
SRCS
stdbit_test.c
COMPILE_OPTIONS
-Wall
-Werror
DEPENDS
libc.include.llvm-libc-macros.stdbit_macros
libc.include.llvm_libc_common_h
libc.include.stdbit
libc.src.assert.__assert_fail
# Intentionally do not depend on libc.src.stdbit.*. The include test is
# simply testing the macros provided by stdbit.h, not the implementation
# of the underlying functions which the type generic macros may dispatch
# to.
)
endif()
add_libc_test(
stdckdint_test
SUITE
libc_include_tests
SRCS
stdckdint_test.cpp
DEPENDS
libc.include.llvm-libc-macros.stdckdint_macros
)
add_libc_test(
signbit_test
SUITE
libc_include_tests
SRCS
signbit_test.cpp
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
signbitf_test
SUITE
libc_include_tests
SRCS
signbitf_test.cpp
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
signbitl_test
SUITE
libc_include_tests
SRCS
signbitl_test.cpp
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
isnan_test
SUITE
libc_include_tests
SRCS
isnan_test.cpp
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
isnanf_test
SUITE
libc_include_tests
SRCS
isnanf_test.cpp
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
isnanl_test
SUITE
libc_include_tests
SRCS
isnanl_test.cpp
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
isinf_test
SUITE
libc_include_tests
SRCS
isinf_test.cpp
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
isinff_test
SUITE
libc_include_tests
SRCS
isinff_test.cpp
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
isinfl_test
SUITE
libc_include_tests
SRCS
isinfl_test.cpp
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
isfinite_test
SUITE
libc_include_tests
SRCS
isfinite_test.cpp
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
isfinitef_test
SUITE
libc_include_tests
SRCS
isfinitef_test.cpp
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
isfinitel_test
SUITE
libc_include_tests
SRCS
isfinitel_test.cpp
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
signbit_c_test
C_TEST
UNIT_TEST_ONLY
SUITE
libc_include_tests
SRCS
signbit_test.c
COMPILE_OPTIONS
-Wall
-Werror
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
isnan_c_test
C_TEST
UNIT_TEST_ONLY
SUITE
libc_include_tests
SRCS
isnan_test.c
COMPILE_OPTIONS
-Wall
-Werror
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
isinf_c_test
C_TEST
UNIT_TEST_ONLY
SUITE
libc_include_tests
SRCS
isinf_test.c
COMPILE_OPTIONS
-Wall
-Werror
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)
add_libc_test(
isfinite_c_test
C_TEST
UNIT_TEST_ONLY
SUITE
libc_include_tests
SRCS
isfinite_test.c
COMPILE_OPTIONS
-Wall
-Werror
DEPENDS
libc.include.llvm-libc-macros.math_function_macros
)