What it is suppose to do: Finding bugs in http implementations such as cohttp and httpaf.
Http simple grammar using Crowbar
You'll need the right compiler with +afl
. -> ocaml-variants.4.05.0+afl
You'll need to use the latest version for Crowbar and Httpaf, the ones on opam are outdated.
opam install crowbar
opam pin add crowbar git://github.com/stedolan/crowbar.git
opam install httpaf
opam pin add httpaf git://github.com/inhabitedtype/httpaf
- Compile the source
jbuilder build main.exe
- Launch the tests
- Simple execution, without AFL
_build/default/main.exe
- With AFL
afl-fuzz -i test/input -o output _build/default/main.exe @@
- With Parallel AFL using tmux
scripts/AFL_tmux.sh
- https://github.com/yomimono/ocaml-bun - Not tested (TODO)
Use it on:
=> Find messages that are not supported. Compare the output to find bugs.