mirror of
https://github.com/isc-projects/bind9.git
synced 2026-02-24 02:10:30 -05:00
1.5 KiB
1.5 KiB
= Fuzzing
The tests in this directory can be operated in three modes:
- non-fuzzing - the test just runs over all input located in
<test_name>.in/directory by compiling with mock main.c that walks through the directory and runsLLVMFuzzerTestOneInput()over the input files - AFL -
./configure --enable-fuzzing=aflwill either feed the stdin toLLVMFuzzerTestOneInput()or run the__AFL_LOOP(10000)if compiled withafl-clang-fast. You have to compile usingCC=afl-<gcc|clang>. - LibFuzzer -
./configure --enable-fuzzing=libfuzzerwill disablemain.ccompletely and it uses the standard LibFuzzer mechanims to feedLLVMFuzzerTestOneInputwith the fuzzer
== Test Cases
Each test case should be called descriptively and the executable target must
link testcase.o and main.o and the test_case.c must have a function
LLVMFuzzerTestOneInput(const uint8_t* data, size_t size).
== Adding more fuzzers
To add a different fuzzer, main.c must be modified to include main() function
for a specific fuzzer (or no function as is case with LibFuzzer).