##// END OF EJS Templates
obsolete: drop the legacy `_enabled` variable...
obsolete: drop the legacy `_enabled` variable Evolve 8.5.0 stopped setting this, and it would have been easier to figure out why TortoiseHg stopped allowing amends if it would have crashed on the missing variable.
Matt Harbison -
r42403:ca762c2b default
Show More
Name Size Modified Last Commit Author
/ contrib / fuzz
Makefile Loading ...
README.rst Loading ...
bdiff.cc Loading ...
dirstate.cc Loading ...
dirstate_corpus.py Loading ...
fm1readmarkers.cc Loading ...
fm1readmarkers_corpus.py Loading ...
fuzzutil.cc Loading ...
fuzzutil.h 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 ...
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