Mercurial > hg
annotate contrib/fuzz/README.rst @ 50425:9fa3cda7449e
heptapod: add `.gitattributes` file to improve language detection
I am fully aware of the irony.
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 05 Apr 2023 16:09:08 +0200 |
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 |