##// END OF EJS Templates
discovery: also audit the number of queries done...
discovery: also audit the number of queries done In addition to the number of roundtrip, we now also track the number of queries we perform, this is useful to assert the tradeoff between number of roundtrip and the number of queries. Differential Revision: https://phab.mercurial-scm.org/D12398
marmoute -
r49881:f054a557 default
Show More
Name Size Modified Last Commit Author
/ contrib / fuzz
FuzzedDataProvider.h Loading ...
Makefile Loading ...
README.rst Loading ...
bdiff.cc Loading ...
dirs.cc Loading ...
dirs_corpus.py Loading ...
dirstate.cc Loading ...
dirstate_corpus.py Loading ...
fm1readmarkers.cc Loading ...
fm1readmarkers_corpus.py Loading ...
fncache.cc Loading ...
fuzzutil.h Loading ...
jsonescapeu8fast.cc Loading ...
manifest.cc Loading ...
manifest_corpus.py Loading ...
mpatch.cc Loading ...
mpatch_corpus.py Loading ...
pyutil.cc Loading ...
pyutil.h Loading ...
revlog.cc Loading ...
revlog_corpus.py Loading ...
standalone_fuzz_target_runner.cc Loading ...
xdiff.cc Loading ...

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