Mercurial > hg
view contrib/fuzz/README.rst @ 39318:c03c5f528e9b
perf: use storage API for resolving manifest node
lookup() isn't part of the storage API. And this code shouldn't
be accessing manifestlog._revlog directly for the modern code base.
So let's port it to the modern API.
Note that the previous code was busted for cases where we needed
to call lookup() because lookup() isn't exposed by manifestrevlog
any more.
This change is strictly BC breaking because we no longer support
resolving partial nodes. But it is a perf* command and I don't
think we should flag the change as such.
Differential Revision: https://phab.mercurial-scm.org/D4390
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 15 Aug 2018 19:45:39 +0000 |
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