test-fuzz-targets.t
43 lines
| 1.1 KiB
| text/troff
|
Tads3Lexer
/ tests / test-fuzz-targets.t
Yuya Nishihara
|
r38238 | #require test-repo | ||
Augie Fackler
|
r35688 | $ cd $TESTDIR/../contrib/fuzz | ||
Yuya Nishihara
|
r38238 | |||
Augie Fackler
|
r40799 | which(1) could exit nonzero, but that's fine because we'll still end | ||
up without a valid executable, so we don't need to check $? here. | ||||
$ if which gmake >/dev/null 2>&1; then | ||||
> MAKE=gmake | ||||
> else | ||||
> MAKE=make | ||||
> fi | ||||
Augie Fackler
|
r40800 | $ 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 | ||||
> } | ||||
Yuya Nishihara
|
r38238 | #if clang-libfuzzer | ||
Augie Fackler
|
r40800 | $ CXX=clang++ havefuzz || exit 80 | ||
Augie Fackler
|
r40799 | $ $MAKE -s clean all | ||
Yuya Nishihara
|
r38238 | #endif | ||
#if no-clang-libfuzzer clang-6.0 | ||||
Augie Fackler
|
r40800 | $ CXX=clang++-6.0 havefuzz || exit 80 | ||
Augie Fackler
|
r40799 | $ $MAKE -s clean all CC=clang-6.0 CXX=clang++-6.0 | ||
Yuya Nishihara
|
r38238 | #endif | ||
#if no-clang-libfuzzer no-clang-6.0 | ||||
$ exit 80 | ||||
#endif | ||||
Augie Fackler
|
r38190 | Just run the fuzzers for five seconds each to verify it works at all. | ||
Augie Fackler
|
r35688 | $ ./bdiff -max_total_time 5 | ||
Augie Fackler
|
r38264 | $ ./mpatch -max_total_time 5 | ||
Augie Fackler
|
r38190 | $ ./xdiff -max_total_time 5 | ||