Mercurial > hg
annotate contrib/fuzz/README.rst @ 50329:3dbc7b1ecaba stable
typing: correct the signature of error.CommandError
There's a place in `mercurial.dispatch._parse()` that passes None if a parse
error happens before the command can be parsed out, and casting the error to
bytes works fine because the command and message fields are apparently ignored.
Likewise, TortoiseHg similarly passes None for the same reason.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 24 Mar 2023 02:22:12 -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 |