Changeset View
Changeset View
Standalone View
Standalone View
src/test/fuzz/CMakeLists.txt
# Fuzzer test harness | # Fuzzer test harness | ||||
add_custom_target(bitcoin-fuzzers) | add_custom_target(bitcoin-fuzzers) | ||||
macro(add_fuzz_target TARGET EXE_NAME) | macro(add_fuzz_target TARGET EXE_NAME) | ||||
add_executable(${TARGET} EXCLUDE_FROM_ALL | add_executable(${TARGET} EXCLUDE_FROM_ALL | ||||
fuzz.cpp | fuzz.cpp | ||||
${ARGN} | ${ARGN} | ||||
) | ) | ||||
set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME ${EXE_NAME}) | set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME ${EXE_NAME}) | ||||
target_link_libraries(${TARGET} server testutil) | target_link_libraries(${TARGET} server testutil) | ||||
add_dependencies(bitcoin-fuzzers ${TARGET}) | add_dependencies(bitcoin-fuzzers ${TARGET}) | ||||
endmacro() | endmacro() | ||||
function(add_regular_fuzz_targets) | |||||
foreach(_fuzz_test_name ${ARGN}) | |||||
sanitize_target_name("fuzz-" ${_fuzz_test_name} _fuzz_target_name) | |||||
add_fuzz_target( | |||||
${_fuzz_target_name} | |||||
${_fuzz_test_name} | |||||
# Sources | |||||
"${_fuzz_test_name}.cpp" | |||||
) | |||||
endforeach() | |||||
endfunction() | |||||
include(SanitizeHelper) | include(SanitizeHelper) | ||||
function(add_deserialize_fuzz_targets) | function(add_deserialize_fuzz_targets) | ||||
foreach(_fuzz_test_name ${ARGN}) | foreach(_fuzz_test_name ${ARGN}) | ||||
sanitize_target_name("fuzz-" ${_fuzz_test_name} _fuzz_target_name) | sanitize_target_name("fuzz-" ${_fuzz_test_name} _fuzz_target_name) | ||||
add_fuzz_target( | add_fuzz_target( | ||||
${_fuzz_target_name} | ${_fuzz_target_name} | ||||
${_fuzz_test_name} | ${_fuzz_test_name} | ||||
# Sources | # Sources | ||||
deserialize.cpp | deserialize.cpp | ||||
) | ) | ||||
sanitize_c_cxx_definition("" ${_fuzz_test_name} _target_definition) | sanitize_c_cxx_definition("" ${_fuzz_test_name} _target_definition) | ||||
string(TOUPPER ${_target_definition} _target_definition) | string(TOUPPER ${_target_definition} _target_definition) | ||||
target_compile_definitions(${_fuzz_target_name} PRIVATE ${_target_definition}) | target_compile_definitions(${_fuzz_target_name} PRIVATE ${_target_definition}) | ||||
endforeach() | endforeach() | ||||
endfunction() | endfunction() | ||||
add_regular_fuzz_targets( | |||||
script_flags | |||||
transaction | |||||
) | |||||
add_deserialize_fuzz_targets( | add_deserialize_fuzz_targets( | ||||
address_deserialize | address_deserialize | ||||
addrman_deserialize | addrman_deserialize | ||||
banentry_deserialize | banentry_deserialize | ||||
block_deserialize | block_deserialize | ||||
blockheader_deserialize | blockheader_deserialize | ||||
blocklocator_deserialize | blocklocator_deserialize | ||||
blockmerkleroot | blockmerkleroot | ||||
blocktransactions_deserialize | blocktransactions_deserialize | ||||
blocktransactionsrequest_deserialize | blocktransactionsrequest_deserialize | ||||
blockundo_deserialize | blockundo_deserialize | ||||
bloomfilter_deserialize | bloomfilter_deserialize | ||||
coins_deserialize | coins_deserialize | ||||
diskblockindex_deserialize | diskblockindex_deserialize | ||||
inv_deserialize | inv_deserialize | ||||
messageheader_deserialize | messageheader_deserialize | ||||
netaddr_deserialize | netaddr_deserialize | ||||
service_deserialize | service_deserialize | ||||
transaction_deserialize | |||||
txoutcompressor_deserialize | txoutcompressor_deserialize | ||||
txundo_deserialize | txundo_deserialize | ||||
) | ) | ||||
No newline at end of file | |||||
add_fuzz_target( | |||||
fuzz-script_flags | |||||
script_flags | |||||
# Sources | |||||
fuzz.cpp | |||||
script_flags.cpp | |||||
) |