summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Fuzzer/FuzzerLoop.cpp
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2015-05-19 22:12:57 +0000
committerKostya Serebryany <kcc@google.com>2015-05-19 22:12:57 +0000
commit490bbd6fa427ef320da238f40238ba6cfa85ddc0 (patch)
treebe008dfaade17c4509c7e5a9b54622151e676f3b /llvm/lib/Fuzzer/FuzzerLoop.cpp
parentff0e9ade5abf24b8d10b8b705374c153ab649ece (diff)
downloadbcm5719-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.cpp14
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);
OpenPOWER on IntegriCloud