Mercurial > hg
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 |
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 |