Mercurial > hg
diff contrib/fuzz/manifest.cc @ 43859:8766728dbce6
fuzz: add support for fuzzing under either Python 2 or 3
This was more of a hairball than I hoped, but it appears to work. The hg-py3
branch of my oss-fuzz fork on github has the remaining changes to switch us to
Python 3, but we may as well retain Python 2 fuzzing support for at least a
little while.
Differential Revision: https://phab.mercurial-scm.org/D7592
author | Augie Fackler <augie@google.com> |
---|---|
date | Mon, 09 Dec 2019 22:20:35 -0500 |
parents | d60bd5c71cbb |
children | 0ff59434af72 |
line wrap: on
line diff
--- a/contrib/fuzz/manifest.cc Fri Nov 22 23:43:59 2019 -0500 +++ b/contrib/fuzz/manifest.cc Mon Dec 09 22:20:35 2019 -0500 @@ -9,15 +9,14 @@ extern "C" { -static PyCodeObject *code; +static PYCODETYPE *code; extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) { contrib::initpy(*argv[0]); - code = (PyCodeObject *)Py_CompileString(R"py( -from parsers import lazymanifest + code = (PYCODETYPE *)Py_CompileString(R"py( try: - lm = lazymanifest(mdata) + lm = parsers.lazymanifest(mdata) # iterate the whole thing, which causes the code to fully parse # every line in the manifest for e, _, _ in lm.iterentries(): @@ -41,7 +40,7 @@ # to debug failures. # print e )py", - "fuzzer", Py_file_input); + "fuzzer", Py_file_input); return 0; }