Mercurial > hg
comparison tests/test-fuzz-targets.t @ 40727: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 | 39cab871e880 |
comparison
equal
deleted
inserted
replaced
40726:6c01fad8de32 | 40727:d9fc51f77cc5 |
---|---|
9 > MAKE=gmake | 9 > MAKE=gmake |
10 > else | 10 > else |
11 > MAKE=make | 11 > MAKE=make |
12 > fi | 12 > fi |
13 | 13 |
14 $ havefuzz() { | |
15 > cat > $TESTTMP/dummy.cc <<EOF | |
16 > #include <stdlib.h> | |
17 > #include <stdint.h> | |
18 > int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { return 0; } | |
19 > int main(int argc, char **argv) { | |
20 > const char data[] = "asdf"; | |
21 > return LLVMFuzzerTestOneInput((const uint8_t *)data, 4); | |
22 > } | |
23 > EOF | |
24 > $CXX $TESTTMP/dummy.cc -o $TESTTMP/dummy \ | |
25 > -fsanitize=fuzzer-no-link,address || return 1 | |
26 > } | |
27 | |
14 #if clang-libfuzzer | 28 #if clang-libfuzzer |
29 $ CXX=clang++ havefuzz || exit 80 | |
15 $ $MAKE -s clean all | 30 $ $MAKE -s clean all |
16 #endif | 31 #endif |
17 #if no-clang-libfuzzer clang-6.0 | 32 #if no-clang-libfuzzer clang-6.0 |
33 $ CXX=clang++-6.0 havefuzz || exit 80 | |
18 $ $MAKE -s clean all CC=clang-6.0 CXX=clang++-6.0 | 34 $ $MAKE -s clean all CC=clang-6.0 CXX=clang++-6.0 |
19 #endif | 35 #endif |
20 #if no-clang-libfuzzer no-clang-6.0 | 36 #if no-clang-libfuzzer no-clang-6.0 |
21 $ exit 80 | 37 $ exit 80 |
22 #endif | 38 #endif |