[test] Speed up fuzzing by ~200x when using afl-fuzz
commit693247b82bbccada37f7bc61380ddac799100eb8
authorpracticalswift <practicalswift@users.noreply.github.com>
Thu, 18 May 2017 19:37:31 +0000 (18 21:37 +0200)
committerpracticalswift <practicalswift@users.noreply.github.com>
Fri, 19 May 2017 05:28:46 +0000 (19 07:28 +0200)
tree3230dc0129a9ad2ef2a8aa472b1edbf8b737932d
parent95546c859b71bd73ddd33552ac216086a9adf7c9
[test] Speed up fuzzing by ~200x when using afl-fuzz

Enable the `afl-clang-fast++` features deferred forkserver (`__AFL_INIT`) and persistent mode (`__AFL_LOOP(1000)`).

Before this patch:

```
$ afl-fuzz -i input -o output -m512 -- src/test/test_bitcoin_fuzzy
[*] Validating target binary...
[!] WARNING: The target binary is pretty slow! See /usr/local/share/doc/afl/perf_tips.txt.
[+] Here are some useful stats:

    Test case count : 1 favored, 0 variable, 1 total
       Bitmap range : 1072 to 1072 bits (average: 1072.00 bits)
        Exec timing : 20.4k to 20.4k us (average: 20.4k us)

exec speed : 57.58/sec (slow!)
exec speed : 48.35/sec (slow!)
exec speed : 53.78/sec (slow!)
```

After this patch:

```
$ afl-fuzz -i input -o output -m512 -- src/test/test_bitcoin_fuzzy
[*] Validating target binary...
[+] Persistent mode binary detected.
[+] Deferred forkserver binary detected.
[+] Here are some useful stats:

    Test case count : 1 favored, 0 variable, 1 total
       Bitmap range : 24 to 24 bits (average: 24.00 bits)
        Exec timing : 114 to 114 us (average: 114 us)

exec speed : 15.9k/sec
exec speed : 13.1k/sec
exec speed : 15.1k/sec
```
doc/fuzzing.md
src/test/test_bitcoin_fuzzy.cpp