Added json_fuzzer and msgpack_fuzzer in test suite

This commit is contained in:
Benoit Blanchon
2020-07-15 11:05:36 +02:00
parent 1600d39693
commit 63606c0985
5 changed files with 57 additions and 25 deletions

View File

@ -6,18 +6,49 @@ if(MSVC)
add_compile_options(-D_CRT_SECURE_NO_WARNINGS)
endif()
add_executable(msgpack_fuzzer
add_executable(msgpack_reproducer
msgpack_fuzzer.cpp
fuzzer_main.cpp
reproducer.cpp
)
target_link_libraries(msgpack_fuzzer
target_link_libraries(msgpack_reproducer
ArduinoJson
)
add_executable(json_fuzzer
add_executable(json_reproducer
json_fuzzer.cpp
fuzzer_main.cpp
reproducer.cpp
)
target_link_libraries(json_fuzzer
target_link_libraries(json_reproducer
ArduinoJson
)
macro(add_fuzzer name)
set(FUZZER "${name}_fuzzer")
set(CORPUS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${name}_corpus")
set(SEED_CORPUS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${name}_seed_corpus")
add_executable("${FUZZER}"
"${FUZZER}.cpp"
)
target_link_libraries("${FUZZER}"
ArduinoJson
)
set_target_properties("${FUZZER}"
PROPERTIES
COMPILE_FLAGS
"-fprofile-instr-generate -fcoverage-mapping -fsanitize=address,undefined,fuzzer -fno-sanitize-recover=all"
LINK_FLAGS
"-fprofile-instr-generate -fcoverage-mapping -fsanitize=address,undefined,fuzzer -fno-sanitize-recover=all"
)
add_test(
NAME
"${FUZZER}"
COMMAND
"${FUZZER}" "${CORPUS_DIR}" "${SEED_CORPUS_DIR}" -max_total_time=5 -timeout=1
)
endmacro()
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 6)
add_fuzzer(json)
add_fuzzer(msgpack)
endif()