mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 14:35:26 +00: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=afl
will 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=libfuzzer
will disablemain.c
completely and it uses the standard LibFuzzer mechanims to feedLLVMFuzzerTestOneInput
with 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).