detailed tests
This commit is contained in:
+30
-1
@@ -3,13 +3,42 @@ project(tests LANGUAGES C)
|
||||
|
||||
enable_testing()
|
||||
|
||||
# The headers are documented as C23-first but expected to work on older standards.
|
||||
# Pinned here so that the claim is actually exercised; configure with
|
||||
# -DDLIBC_C_STANDARD=23 to build them the way the README describes.
|
||||
set(DLIBC_C_STANDARD 11 CACHE STRING "C standard the tests are compiled against")
|
||||
|
||||
# The library's stated goal is memory safety, so the take, aliasing and destructor
|
||||
# tests are worth a lot more when the allocator is watching. Off by default, as it
|
||||
# slows the tests down and needs a compiler that ships the sanitizer runtimes.
|
||||
option(DLIBC_SANITIZE "Build the tests with AddressSanitizer and UndefinedBehaviorSanitizer" OFF)
|
||||
|
||||
add_executable(test_vector
|
||||
tests/test_vector.c
|
||||
tests/vector_altcap.c
|
||||
)
|
||||
|
||||
add_executable(test_set
|
||||
tests/test_set.c
|
||||
tests/set_altcap.c
|
||||
)
|
||||
|
||||
foreach(dlibc_target test_vector test_set)
|
||||
set_target_properties(${dlibc_target} PROPERTIES
|
||||
C_STANDARD ${DLIBC_C_STANDARD}
|
||||
C_STANDARD_REQUIRED ON
|
||||
C_EXTENSIONS OFF
|
||||
)
|
||||
|
||||
if(NOT MSVC)
|
||||
target_compile_options(${dlibc_target} PRIVATE -Wall -Wextra -Wpedantic -Werror)
|
||||
|
||||
if(DLIBC_SANITIZE)
|
||||
target_compile_options(${dlibc_target} PRIVATE -g -fno-omit-frame-pointer -fsanitize=address,undefined)
|
||||
target_link_options(${dlibc_target} PRIVATE -fsanitize=address,undefined)
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_test(NAME test_vector COMMAND test_vector)
|
||||
add_test(NAME test_set COMMAND test_set)
|
||||
add_test(NAME test_set COMMAND test_set)
|
||||
|
||||
Reference in New Issue
Block a user