Add fuzz testing using american fuzzy lop
Existing tests: block, transaction, signature, cold outputs, cold transaction. Data for these is in tests/data/fuzz. A convenience shell script is in contrib/fuzz_testing/fuzz.sh, eg: contrib/fuzz_testing/fuzz.sh signature The fuzzer will run indefinitely, ^C to stop. Fuzzing is currently supported for GCC only. I can't get CLANG to build Monero here as it dies on some system headers, so if someone wants to make it work on both, that'd be great. In particular, the __AFL_LOOP construct should be made to work so that a given run can fuzz multiple inputs, as the C++ load time is substantial.
This commit is contained in:
@@ -77,6 +77,7 @@ file(COPY
|
||||
DESTINATION data)
|
||||
|
||||
add_subdirectory(core_tests)
|
||||
add_subdirectory(fuzz)
|
||||
add_subdirectory(crypto)
|
||||
add_subdirectory(functional_tests)
|
||||
add_subdirectory(performance_tests)
|
||||
@@ -114,6 +115,7 @@ set(enabled_tests
|
||||
hash
|
||||
performance_tests
|
||||
core_proxy
|
||||
fuzz
|
||||
unit_tests)
|
||||
|
||||
add_custom_target(tests DEPENDS enabled_tests)
|
||||
|
||||
Reference in New Issue
Block a user