How to add fuzzers (partially cribbed from oss-fuzz[0]):
- git clone https://github.com/google/oss-fuzz
- cd oss-fuzz
- python infra/helper.py build_image mercurial
- docker run --cap-add=SYS_PTRACE -it -v $HG_REPO_PATH:/hg-new
- gcr.io/oss-fuzz/mercurial bash
- cd /src
- rm -r mercurial
- ln -s /hg-new mercurial
- cd mercurial
- compile
- ls $OUT
Step 9 is literally running the command "compile", which is part of the docker container. Once you have that working, you can build the fuzzers like this (in the oss-fuzz repo):
python infra/helper.py build_fuzzers --sanitizer address mercurial $HG_REPO_PATH
(you can also say "memory", "undefined" or "coverage" for sanitizer). Then run the built fuzzers like this:
python infra/helper.py run_fuzzer mercurial -- $FUZZER
0: https://github.com/google/oss-fuzz/blob/master/docs/new_project_guide.md