Gregory Szorc <gregory.szorc@gmail.com> [Sat, 07 Dec 2019 13:06:25 -0800] rev 43818
rust: run rustfmt
# skip-blame automated reformatting
Differential Revision: https://phab.mercurial-scm.org/D7578
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 16:09:03 -0500] rev 43817
fuzz: clean up some repetition on building parsers.so fuzzers
There was a lot of repetition here that I realized could be cleared out. I
think there's some more work we could do here, but this is enough for now.
Differential Revision: https://phab.mercurial-scm.org/D7568
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:21:45 -0500] rev 43816
fuzz: remove legacy setup for running fuzzers outside oss-fuzz
We don't need this anymore.
Differential Revision: https://phab.mercurial-scm.org/D7567
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:08:37 -0500] rev 43815
tests: finally fix up test-fuzz-targets.t
It's been failing on my workstation for a while, since I have a new enough
LLVM that I had the fuzzer goo, but not so new that I actually had
FuzzedDataProvider. This is a better solution all around in my opinion.
I _believe_ this should let us run these tests on most systems, even
those using GCC instead of clang. That said, my one attempt to test
this on my macOS laptop failed miserably, and I don't feel like doing
more work on this right now.
Differential Revision: https://phab.mercurial-scm.org/D7566
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:07:06 -0500] rev 43814
fuzz: make standalone_fuzz_target_runner call LLVMFuzzerInitialize
Otherwise some of our fuzzers crash when they try and use Python.
Differential Revision: https://phab.mercurial-scm.org/D7565
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:19:47 -0500] rev 43813
fuzz: use a more standard approach to allow local builds of fuzzers
This is taken from the (improved since we started fuzzing) guide on ideal
integrations. Rather than have our own wonky targets for building outside the
fuzzer universe, we have a driver program we carry along and use when we're
not using LibFuzzer. This will let us jettison a fair amount of goo.
contrib/fuzz/standalone_fuzz_target_runner.cc is
https://github.com/google/oss-fuzz/ file
projects/example/my-api-repo/standalone from git revision
c4579d9358a73ea5dbcc99cb985de1f2bf76dcf7, reformatted with out
clang-format settings and a no-check-code comment added. It allows
running a single test input through a fuzzer, rather than performing
ongoing fuzzing as libfuzzer would.
contrib/fuzz/FuzzedDataProvider.h is
https://github.com/llvm/llvm-project/ file
/compiler-rt/include/fuzzer/FuzzedDataProvider.h from git revision
a44ef027ebca1598892ea9b104d6189aeb3bc2f0, reformatted with our
clang-format settings and a no-check-code comment added. We can
discard this if we instead want to add an hghave check for a new
enough llvm that includes FuzzedDataProvder.h in the fuzzer headers.
Differential Revision: https://phab.mercurial-scm.org/D7564
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:15:05 -0500] rev 43812
fuzz: use a variable to allow specifying python-config to use
Eventually we should probably default this to just `python-config` and have
the oss-fuzz build.sh script specify the sanpy python-config, but for now this
lets us make progress.
Differential Revision: https://phab.mercurial-scm.org/D7563
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:13:25 -0500] rev 43811
fuzz: suppress deprecated-register warnings in our compile
These come from the Python.h headers still using the `register`
keyword and our use of C++17. I think this will go away when we're
using Python 3 for our fuzzing, but that can come later.
Differential Revision: https://phab.mercurial-scm.org/D7562
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:12:00 -0500] rev 43810
fuzz: follow modern guidelines and use LIB_FUZZING_ENGINE
This will make our lives easier in an upcoming change, but it's also how we're
supposed to set things up anyway.
Differential Revision: https://phab.mercurial-scm.org/D7561
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:05:34 -0500] rev 43809
fuzz: always define LLVMFuzzerInitialize() even if we don't need it
This will make it easier to test our fuzzers outside oss-fuzz.
Differential Revision: https://phab.mercurial-scm.org/D7560
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:06:10 -0500] rev 43808
fuzz: remove debug prints from revlog_corpus.py
Differential Revision: https://phab.mercurial-scm.org/D7559
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:30:29 -0500] rev 43807
fuzz: fix an unused result on getcwd() in pyutil
clang was rightly complaining about this, so let's just fix it.
Differential Revision: https://phab.mercurial-scm.org/D7558