Merge #10415: [tests] Speed up fuzzing by ~200x when using afl-fuzz

693247b [test] Speed up fuzzing by ~200x when using afl-fuzz (practicalswift)

Tree-SHA512: 95922fc2616b8cb00dd531ed1140a52bbda4e04292dd8c1c60a8f49dbf6ccb797a18b61180b3fb68d695456b478a1f5ae7fda47e8ecee41dd65555487aef40a3
This commit is contained in:
Wladimir J. van der Laan
2017-05-22 16:53:18 +02:00
2 changed files with 28 additions and 3 deletions

View File

@@ -59,9 +59,8 @@ bool read_stdin(std::vector<char> &data) {
return length==0;
}
int main(int argc, char **argv)
int do_fuzz()
{
ECCVerifyHandle globalVerifyHandle;
std::vector<char> buffer;
if (!read_stdin(buffer)) return 0;
@@ -256,3 +255,23 @@ int main(int argc, char **argv)
return 0;
}
int main(int argc, char **argv)
{
ECCVerifyHandle globalVerifyHandle;
#ifdef __AFL_INIT
// Enable AFL deferred forkserver mode. Requires compilation using
// afl-clang-fast++. See fuzzing.md for details.
__AFL_INIT();
#endif
#ifdef __AFL_LOOP
// Enable AFL persistent mode. Requires compilation using afl-clang-fast++.
// See fuzzing.md for details.
while (__AFL_LOOP(1000)) {
do_fuzz();
}
return 0;
#else
return do_fuzz();
#endif
}