view contrib/fuzz/README.rst @ 40084:2cf18f46a1ce

narrow: only walk files within narrowspec also for committed revisions Narrow has been walking only paths matching the narrowspec when walking the working copy. We have not done the same filtering when walking committed revisions (e.g. "hg files -r "), which seems a little odd. Let's make it consistent. Differential Revision: https://phab.mercurial-scm.org/D4898
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 28 Sep 2018 17:09:15 -0700
parents e437de3881c1
children
line wrap: on
line source

How to add fuzzers (partially cribbed from oss-fuzz[0]):

  1) git clone https://github.com/google/oss-fuzz
  2) cd oss-fuzz
  3) python infra/helper.py build_image mercurial
  4) docker run --cap-add=SYS_PTRACE -it -v $HG_REPO_PATH:/hg-new \
         gcr.io/oss-fuzz/mercurial bash
  5) cd /src
  6) rm -r mercurial
  7) ln -s /hg-new mercurial
  8) cd mercurial
  9) compile
  10) 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