Files
ArduinoJson/extras/fuzzing/CMakeLists.txt

59 lines
1.3 KiB
CMake
Raw Normal View History

# ArduinoJson - https://arduinojson.org
2024-01-03 08:47:06 +01:00
# Copyright © 2014-2024, Benoit BLANCHON
2018-10-19 19:42:15 +02:00
# MIT License
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(MSVC)
add_compile_options(-D_CRT_SECURE_NO_WARNINGS)
endif()
add_executable(msgpack_reproducer
2018-10-19 19:42:15 +02:00
msgpack_fuzzer.cpp
reproducer.cpp
2018-10-19 19:42:15 +02:00
)
target_link_libraries(msgpack_reproducer
ArduinoJson
)
add_executable(json_reproducer
json_fuzzer.cpp
reproducer.cpp
)
target_link_libraries(json_reproducer
ArduinoJson
)
2023-02-09 10:00:38 +01:00
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}"
2020-08-03 09:24:30 +02:00
"${name}_fuzzer.cpp"
)
target_link_libraries("${FUZZER}"
ArduinoJson
)
set_target_properties("${FUZZER}"
2023-02-09 10:00:38 +01:00
PROPERTIES
COMPILE_FLAGS "-fprofile-instr-generate -fcoverage-mapping -fsanitize=fuzzer -fno-sanitize-recover=all"
LINK_FLAGS "-fprofile-instr-generate -fcoverage-mapping -fsanitize=fuzzer -fno-sanitize-recover=all"
)
add_test(
2023-02-09 10:00:38 +01:00
NAME "${FUZZER}"
COMMAND "${FUZZER}" "${CORPUS_DIR}" "${SEED_CORPUS_DIR}" -max_total_time=5 -timeout=1
)
2021-04-25 11:38:19 +02:00
set_tests_properties("${FUZZER}"
PROPERTIES
2023-02-09 10:00:38 +01:00
LABELS "Fuzzing"
2021-04-25 11:38:19 +02:00
)
endmacro()
2023-02-09 10:00:38 +01:00
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6)
add_fuzzer(json)
add_fuzzer(msgpack)
2020-09-05 11:10:13 +02:00
endif()