
【主 题】:不从配置文件远端获取 ArduinoJson库 添加到根目录调用 【描 述】: [原因]:防止版本不同 造成bug [过程]: [影响]: 【结 束】 # 类型 包含: # feat:新功能(feature) # fix:修补bug # docs:文档(documentation) # style: 格式(不影响代码运行的变动) # refactor:重构(即不是新增功能,也不是修改bug的代码变动) # test:增加测试 # chore:构建过程或辅助工具的变动
60 lines
1.3 KiB
CMake
60 lines
1.3 KiB
CMake
# ArduinoJson - https://arduinojson.org
|
|
# Copyright © 2014-2022, Benoit BLANCHON
|
|
# MIT License
|
|
|
|
if(MSVC)
|
|
add_compile_options(-D_CRT_SECURE_NO_WARNINGS)
|
|
endif()
|
|
|
|
add_executable(msgpack_reproducer
|
|
msgpack_fuzzer.cpp
|
|
reproducer.cpp
|
|
)
|
|
target_link_libraries(msgpack_reproducer
|
|
ArduinoJson
|
|
)
|
|
|
|
add_executable(json_reproducer
|
|
json_fuzzer.cpp
|
|
reproducer.cpp
|
|
)
|
|
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}"
|
|
"${name}_fuzzer.cpp"
|
|
)
|
|
target_link_libraries("${FUZZER}"
|
|
ArduinoJson
|
|
)
|
|
set_target_properties("${FUZZER}"
|
|
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(
|
|
NAME
|
|
"${FUZZER}"
|
|
COMMAND
|
|
"${FUZZER}" "${CORPUS_DIR}" "${SEED_CORPUS_DIR}" -max_total_time=5 -timeout=1
|
|
)
|
|
|
|
set_tests_properties("${FUZZER}"
|
|
PROPERTIES
|
|
LABELS "Fuzzing"
|
|
)
|
|
endmacro()
|
|
|
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6)
|
|
add_fuzzer(json)
|
|
add_fuzzer(msgpack)
|
|
endif()
|