From 841231e5bd0d90e8a57d6fd997701a70ef520730 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sat, 24 Jun 2017 12:38:41 +0100 Subject: 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. --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 9344f387c..0f5ee5773 100644 --- a/Makefile +++ b/Makefile @@ -108,6 +108,10 @@ release-static-win32: mkdir -p build/release cd build/release && cmake -G "MSYS Makefiles" -D STATIC=ON -D ARCH="i686" -D BUILD_64=OFF -D CMAKE_BUILD_TYPE=Release -D BUILD_TAG="win-x32" -D CMAKE_TOOLCHAIN_FILE=../../cmake/32-bit-toolchain.cmake -D MSYS2_FOLDER=c:/msys32 ../.. && $(MAKE) +fuzz: + mkdir -p build/fuzz + cd build/fuzz && cmake -D BUILD_TESTS=ON -D USE_LTO=OFF -D CMAKE_C_COMPILER=afl-gcc -D CMAKE_CXX_COMPILER=afl-g++ -D ARCH="x86-64" -D CMAKE_BUILD_TYPE=fuzz -D BUILD_TAG="linux-x64" ../.. && $(MAKE) + clean: @echo "WARNING: Back-up your wallet if it exists within ./build!" ; \ read -r -p "This will destroy the build directory, continue (y/N)?: " CONTINUE; \ -- cgit v1.2.3