Add fuzz test

This commit is contained in:
2024-01-19 15:48:07 -08:00
parent a2a55c9717
commit 756f74c6de
3 changed files with 58 additions and 7 deletions

View File

@@ -14,19 +14,21 @@ target_compile_options(conflict_set PRIVATE -fno-exceptions -fvisibility=hidden)
target_link_options(conflict_set PRIVATE -nodefaultlibs -lc -fvisibility=hidden)
add_custom_command(TARGET conflict_set POST_BUILD COMMAND ${CMAKE_STRIP} -x $<TARGET_FILE:conflict_set>)
include(CTest)
# unit test
add_executable(conflict_set_test ConflictSet.cpp ConflictSet.h)
target_compile_definitions(conflict_set_test PRIVATE ENABLE_TESTS)
# keep asserts for test
target_compile_options(conflict_set_test PRIVATE -UNDEBUG)
# Only emit compile warnings for test
target_compile_options(conflict_set_test PRIVATE -Wall -Wextra -Wpedantic -Wunreachable-code)
include(CTest)
add_test(NAME conflict_set_test COMMAND conflict_set_test)
# api smoke tests
# c89
# c99
add_executable(conflict_set_c_api_test conflict_set_c_api_test.c ConflictSet.h)
target_link_libraries(conflict_set_c_api_test PRIVATE conflict_set)
target_compile_options(conflict_set_c_api_test PRIVATE -UNDEBUG)
@@ -40,4 +42,18 @@ target_link_libraries(conflict_set_cxx_api_test PRIVATE conflict_set)
target_compile_options(conflict_set_cxx_api_test PRIVATE -UNDEBUG)
set_property(TARGET conflict_set_cxx_api_test PROPERTY CXX_STANDARD 98)
add_test(NAME conflict_set_cxx_api_test COMMAND conflict_set_cxx_api_test)
target_compile_options(conflict_set_cxx_api_test PRIVATE -Wall -Wextra -Wpedantic -Wunreachable-code -Werror)
target_compile_options(conflict_set_cxx_api_test PRIVATE -Wall -Wextra -Wpedantic -Wunreachable-code -Werror)
# fuzz test
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag(HAS_LIB_FUZZER -fsanitize=fuzzer)
if (HAS_LIB_FUZZER)
add_executable(conflict_set_fuzz_test ConflictSet.cpp ConflictSet.h)
target_compile_definitions(conflict_set_fuzz_test PRIVATE ENABLE_FUZZ)
# keep asserts for test
target_compile_options(conflict_set_fuzz_test PRIVATE -UNDEBUG)
target_compile_options(conflict_set_fuzz_test PRIVATE -Wall -Wextra -Wpedantic -Wunreachable-code)
target_compile_options(conflict_set_fuzz_test PRIVATE -fsanitize=fuzzer)
target_link_options(conflict_set_fuzz_test PRIVATE -fsanitize=fuzzer)
endif()