diff options
author | Kostya Serebryany <kcc@google.com> | 2015-05-19 22:12:57 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2015-05-19 22:12:57 +0000 |
commit | 490bbd6fa427ef320da238f40238ba6cfa85ddc0 (patch) | |
tree | be008dfaade17c4509c7e5a9b54622151e676f3b /llvm/lib/Fuzzer/FuzzerLoop.cpp | |
parent | ff0e9ade5abf24b8d10b8b705374c153ab649ece (diff) | |
download | bcm5719-llvm-490bbd6fa427ef320da238f40238ba6cfa85ddc0.tar.gz bcm5719-llvm-490bbd6fa427ef320da238f40238ba6cfa85ddc0.zip |
[lib/Fuzzer] change the meaning of -timeout flag: now timeout is applied to every unit of work separately
llvm-svn: 237735
Diffstat (limited to 'llvm/lib/Fuzzer/FuzzerLoop.cpp')
-rw-r--r-- | llvm/lib/Fuzzer/FuzzerLoop.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerLoop.cpp b/llvm/lib/Fuzzer/FuzzerLoop.cpp index be1e9730e34..696811b4511 100644 --- a/llvm/lib/Fuzzer/FuzzerLoop.cpp +++ b/llvm/lib/Fuzzer/FuzzerLoop.cpp @@ -60,16 +60,20 @@ void Fuzzer::StaticAlarmCallback() { } void Fuzzer::AlarmCallback() { + assert(Options.UnitTimeoutSec > 0); size_t Seconds = duration_cast<seconds>(system_clock::now() - UnitStartTime).count(); - std::cerr << "ALARM: working on the last Unit for " << Seconds << " seconds" - << std::endl; - if (Seconds >= 3) { + if (Seconds == 0) return; + if (Options.Verbosity >= 2) + std::cerr << "AlarmCallback " << Seconds << "\n"; + if (Seconds >= (size_t)Options.UnitTimeoutSec) { + std::cerr << "ALARM: working on the last Unit for " << Seconds << " seconds" + << std::endl; Print(CurrentUnit, "\n"); PrintUnitInASCIIOrTokens(CurrentUnit, "\n"); WriteToCrash(CurrentUnit, "timeout-"); + exit(1); } - exit(1); } void Fuzzer::PrintStats(const char *Where, size_t Cov, const char *End) { @@ -96,6 +100,8 @@ void Fuzzer::RereadOutputCorpus() { return; } if (!Options.Reload) return; + if (Options.Verbosity >= 2) + std::cerr << "Reload: read " << AdditionalCorpus.size() << " new units.\n"; for (auto &X : AdditionalCorpus) { if (X.size() > (size_t)Options.MaxLen) X.resize(Options.MaxLen); |