view contrib/fuzz/README.rst @ 48055:84e7a86e3a63

dirstate: simplify the ambiguity clearing at write time The serialization function is already doing this, so we don't need to do it manually. We just need to propagate the right definition of "now". Differential Revision: https://phab.mercurial-scm.org/D11501
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 22 Sep 2021 14:54:42 +0200
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