Mercurial > hg
annotate contrib/fuzz/README.rst @ 46393:66e8e279133b
hghave: list the module needed for the `vcr` check
I'm tired of having to look up modules each time I setup a system, and try to
distinguish between similar package names to get the right one. Now that the
search API has been disabled, it's even harder. There are other python packages
here that should be listed like this, but this is the one that came up missing
today, so it's a start.
Differential Revision: https://phab.mercurial-scm.org/D9879
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 26 Jan 2021 17:25:30 -0500 |
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 |