Mercurial > hg
view contrib/fuzz/README.rst @ 47476:f23eafb036af
dirstate-v2: Use 32-bit integers instead of 64-bit for offsets
This saves 12 bytes per node. (Nodes representing files or directories.)
These are offsets to other parts of the file. This would only be a limitation
for a `.hg/dirstate` file larger than 4 GiB, which would only happen for a
repository with dozens of millions of files and directories.
Differential Revision: https://phab.mercurial-scm.org/D10920
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Mon, 28 Jun 2021 15:41:50 +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