diff options
author | Kostya Serebryany <kcc@google.com> | 2015-03-30 23:04:35 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2015-03-30 23:04:35 +0000 |
commit | 16901a901d85077c239570f089aba0c9313f4901 (patch) | |
tree | 69d658c67918768ffceb0be376fc93db345857d0 /llvm/lib/Fuzzer/FuzzerLoop.cpp | |
parent | cde33036ed74db02088f5e3558afa33384cc4a13 (diff) | |
download | bcm5719-llvm-16901a901d85077c239570f089aba0c9313f4901.tar.gz bcm5719-llvm-16901a901d85077c239570f089aba0c9313f4901.zip |
[fuzzer] when a single unit takes over 1 second to run and it is the slowest one so far, print it.
llvm-svn: 233637
Diffstat (limited to 'llvm/lib/Fuzzer/FuzzerLoop.cpp')
-rw-r--r-- | llvm/lib/Fuzzer/FuzzerLoop.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerLoop.cpp b/llvm/lib/Fuzzer/FuzzerLoop.cpp index b220c985900..7d152f19eaf 100644 --- a/llvm/lib/Fuzzer/FuzzerLoop.cpp +++ b/llvm/lib/Fuzzer/FuzzerLoop.cpp @@ -96,11 +96,23 @@ void Fuzzer::ShuffleAndMinimize() { size_t Fuzzer::RunOne(const Unit &U) { UnitStartTime = system_clock::now(); TotalNumberOfRuns++; + size_t Res = 0; if (Options.UseFullCoverageSet) - return RunOneMaximizeFullCoverageSet(U); - if (Options.UseCoveragePairs) - return RunOneMaximizeCoveragePairs(U); - return RunOneMaximizeTotalCoverage(U); + Res = RunOneMaximizeFullCoverageSet(U); + else if (Options.UseCoveragePairs) + Res = RunOneMaximizeCoveragePairs(U); + else + Res = RunOneMaximizeTotalCoverage(U); + auto UnitStopTime = system_clock::now(); + auto TimeOfUnit = + duration_cast<seconds>(UnitStopTime - UnitStartTime).count(); + if (TimeOfUnit > TimeOfLongestUnitInSeconds) { + TimeOfLongestUnitInSeconds = TimeOfUnit; + std::cerr << "Longest unit: " << TimeOfLongestUnitInSeconds + << " s:\n"; + Print(U, "\n"); + } + return Res; } static uintptr_t HashOfArrayOfPCs(uintptr_t *PCs, uintptr_t NumPCs) { |