Mercurial > hg-stable
changeset 40448:d9fc51f77cc5 stable
tests: sniff for libfuzzer actually being available in test-fuzz-targets.t
When I upgraded the FreeBSD buildbot to 11.2 it seems we picked up
clang6, but the default clang on FreeBSD doesn't include libfuzzer. I
can't find a way to sniff for libfuzzer without running a compile, so
here we are.
Differential Revision: https://phab.mercurial-scm.org/D5270
author | Augie Fackler <augie@google.com> |
---|---|
date | Wed, 14 Nov 2018 10:12:43 -0500 |
parents | 6c01fad8de32 |
children | d1bda397df73 |
files | tests/test-fuzz-targets.t |
diffstat | 1 files changed, 16 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-fuzz-targets.t Wed Nov 14 10:11:37 2018 -0500 +++ b/tests/test-fuzz-targets.t Wed Nov 14 10:12:43 2018 -0500 @@ -11,10 +11,26 @@ > MAKE=make > fi + $ havefuzz() { + > cat > $TESTTMP/dummy.cc <<EOF + > #include <stdlib.h> + > #include <stdint.h> + > int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { return 0; } + > int main(int argc, char **argv) { + > const char data[] = "asdf"; + > return LLVMFuzzerTestOneInput((const uint8_t *)data, 4); + > } + > EOF + > $CXX $TESTTMP/dummy.cc -o $TESTTMP/dummy \ + > -fsanitize=fuzzer-no-link,address || return 1 + > } + #if clang-libfuzzer + $ CXX=clang++ havefuzz || exit 80 $ $MAKE -s clean all #endif #if no-clang-libfuzzer clang-6.0 + $ CXX=clang++-6.0 havefuzz || exit 80 $ $MAKE -s clean all CC=clang-6.0 CXX=clang++-6.0 #endif #if no-clang-libfuzzer no-clang-6.0