Mercurial > hg
annotate contrib/fuzz/README.rst @ 46991:83c0d144ef8d
mail: split out the SMTP login to allow the keyring extension to wrap it
The keyring extension only needs to tweak this tiny section of the larger
function. But without any place to intercept the username/password fetching, it
copy/pasted the entire function, and has grown a bunch of compatibility hacks to
support older versions of Mercurial as well.
Differential Revision: https://phab.mercurial-scm.org/D10471
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 19 Apr 2021 17:26:57 -0400 |
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 |