annotate contrib/fuzz/README.rst @ 40073:e92454e69dc3

narrow: introduce a config option to check if narrow is enabled or not This patch introduces a new config option experimental.narrow which is set to False by default and set to True by the narrow extension. While moving narrow related logic into core, we need to know at places whether narrow extension is enabled or not. Checking the list of extension enabled is one solution but once narrow is inbuilt, we will definitely want a config option to check whether narrow is turned on or not. So this patch introduces a config option, which will evolve to the main point to turn narrow capability on and off once all the narrow is in core. Differential Revision: https://phab.mercurial-scm.org/D4889
author Pulkit Goyal <pulkit@yandex-team.ru>
date Fri, 05 Oct 2018 22:19:19 +0300
parents e437de3881c1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
36680
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
1 How to add fuzzers (partially cribbed from oss-fuzz[0]):
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
2
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
3 1) git clone https://github.com/google/oss-fuzz
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
4 2) cd oss-fuzz
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
5 3) python infra/helper.py build_image mercurial
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
6 4) docker run --cap-add=SYS_PTRACE -it -v $HG_REPO_PATH:/hg-new \
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
7 gcr.io/oss-fuzz/mercurial bash
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
8 5) cd /src
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
9 6) rm -r mercurial
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
10 7) ln -s /hg-new mercurial
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
11 8) cd mercurial
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
12 9) compile
36700
e437de3881c1 fuzz: add some more docs about building/running fuzzers
Augie Fackler <augie@google.com>
parents: 36680
diff changeset
13 10) ls $OUT
e437de3881c1 fuzz: add some more docs about building/running fuzzers
Augie Fackler <augie@google.com>
parents: 36680
diff changeset
14
e437de3881c1 fuzz: add some more docs about building/running fuzzers
Augie Fackler <augie@google.com>
parents: 36680
diff changeset
15 Step 9 is literally running the command "compile", which is part of
e437de3881c1 fuzz: add some more docs about building/running fuzzers
Augie Fackler <augie@google.com>
parents: 36680
diff changeset
16 the docker container. Once you have that working, you can build the
e437de3881c1 fuzz: add some more docs about building/running fuzzers
Augie Fackler <augie@google.com>
parents: 36680
diff changeset
17 fuzzers like this (in the oss-fuzz repo):
e437de3881c1 fuzz: add some more docs about building/running fuzzers
Augie Fackler <augie@google.com>
parents: 36680
diff changeset
18
e437de3881c1 fuzz: add some more docs about building/running fuzzers
Augie Fackler <augie@google.com>
parents: 36680
diff changeset
19 python infra/helper.py build_fuzzers --sanitizer address mercurial $HG_REPO_PATH
e437de3881c1 fuzz: add some more docs about building/running fuzzers
Augie Fackler <augie@google.com>
parents: 36680
diff changeset
20
e437de3881c1 fuzz: add some more docs about building/running fuzzers
Augie Fackler <augie@google.com>
parents: 36680
diff changeset
21 (you can also say "memory", "undefined" or "coverage" for
e437de3881c1 fuzz: add some more docs about building/running fuzzers
Augie Fackler <augie@google.com>
parents: 36680
diff changeset
22 sanitizer). Then run the built fuzzers like this:
e437de3881c1 fuzz: add some more docs about building/running fuzzers
Augie Fackler <augie@google.com>
parents: 36680
diff changeset
23
e437de3881c1 fuzz: add some more docs about building/running fuzzers
Augie Fackler <augie@google.com>
parents: 36680
diff changeset
24 python infra/helper.py run_fuzzer mercurial -- $FUZZER
36680
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
25
66f2e622a2ed fuzz: add a quick README to try and document how to test new fuzzers
Augie Fackler <augie@google.com>
parents:
diff changeset
26 0: https://github.com/google/oss-fuzz/blob/master/docs/new_project_guide.md