annotate contrib/fuzz/README.rst @ 36747:4c71a26a4009

sslutil: some more forcebytes() on some exception messages At this point, test-https.t no longer dumps tracebacks everywhere. Instead, we get some results that look like we're not adequately finding things in hg's configuration, which should be manageable (if somewhat annoying to find and fix.) Differential Revision: https://phab.mercurial-scm.org/D2690
author Augie Fackler <augie@google.com>
date Sun, 04 Mar 2018 21:16:36 -0500
parents e437de3881c1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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