• practicalswift's avatar
    [test] Speed up fuzzing by ~200x when using afl-fuzz · 693247b8
    practicalswift authored
    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
    ```
    693247b8
fuzzing.md 2.13 KB