From 38bf21b4f7422ffcbd2e2f7a6e43ecbc59ecfc96 Mon Sep 17 00:00:00 2001 From: Kim De Mey Date: Tue, 21 Jul 2020 10:58:14 +0200 Subject: [PATCH] Update fuzzing readme.md --- tests/fuzzing/readme.md | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/tests/fuzzing/readme.md b/tests/fuzzing/readme.md index 8732549..19995d4 100644 --- a/tests/fuzzing/readme.md +++ b/tests/fuzzing/readme.md @@ -1,8 +1,11 @@ # Fuzzing Tests -The fuzzing tests use the fuzzing templates from `nim-testutils`. +This directory contains a set of subdirectories which hold one or more test cases that can be used for fuzzing. +The fuzzing test cases use the fuzzing templates from `nim-testutils`. For more details see [the fuzzing readme of nim-testutils](https://github.com/status-im/nim-testutils/tree/master/testutils/fuzzing). +Some of the subdirectories also hold corpus generation tooling in order to have some corpus files to start fuzzing from. + ## Prerequisites As [explained](https://github.com/status-im/nim-testutils/tree/master/testutils/fuzzing#supported-fuzzers) in `nim-testutils` fuzzing readme, first install the fuzzer you want to run. @@ -15,10 +18,22 @@ nimble install testutils ``` ## How to run -To start fuzzing a testcase run following command: +To start fuzzing a test case run following command: ```sh -# For libFuzzer -ntu fuzz --fuzzer:libFuzzer rlp/rlp_inspect -# For afl -ntu fuzz --fuzzer:afl rlp/rlp_inspect +# Rlp fuzzing with libFuzzer +ntu fuzz --fuzzer:libFuzzer rlp/rlp_decode +# Rlp fuzzing with afl +ntu fuzz --fuzzer:afl rlp/rlp_decode ``` +Or another example: +```sh +# ENR fuzzing with libFuzzer +ntu fuzz --fuzzer:libFuzzer enr/fuzz_enr +# ENR fuzzing with afl +ntu fuzz --fuzzer:afl enr/fuzz_enr +``` + +## Manual adjustments +The `ntu` application is still very limited in its functionality. Many of the underlying fuzzer functionality is not available for adjustment so you might want to configure the setup in a more manual way. + +How to do this is briefly explained [here for afl](https://github.com/status-im/nim-testutils/blob/master/testutils/fuzzing/readme.md#manually-with-afl) and [here for libFuzzer](https://github.com/status-im/nim-testutils/blob/master/testutils/fuzzing/readme.md#manually-with-libfuzzer).