[llvm] r261143 - [libFuzzer] don't timeout when loading the corpus. Be a bit more verbose when loading large corpus.

Kostya Serebryany via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 17 11:42:34 PST 2016


Author: kcc
Date: Wed Feb 17 13:42:34 2016
New Revision: 261143

URL: http://llvm.org/viewvc/llvm-project?rev=261143&view=rev
Log:
[libFuzzer] don't timeout when loading the corpus. Be a bit more verbose when loading large corpus.

Modified:
    llvm/trunk/lib/Fuzzer/FuzzerIO.cpp
    llvm/trunk/lib/Fuzzer/FuzzerLoop.cpp

Modified: llvm/trunk/lib/Fuzzer/FuzzerIO.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/FuzzerIO.cpp?rev=261143&r1=261142&r2=261143&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/FuzzerIO.cpp (original)
+++ llvm/trunk/lib/Fuzzer/FuzzerIO.cpp Wed Feb 17 13:42:34 2016
@@ -86,9 +86,13 @@ void WriteToFile(const Unit &U, const st
 void ReadDirToVectorOfUnits(const char *Path, std::vector<Unit> *V,
                             long *Epoch) {
   long E = Epoch ? *Epoch : 0;
-  for (auto &X : ListFilesInDir(Path, Epoch)) {
+  auto Files = ListFilesInDir(Path, Epoch);
+  for (size_t i = 0; i < Files.size(); i++) {
+    auto &X = Files[i];
     auto FilePath = DirPlusFile(Path, X);
     if (Epoch && GetEpoch(FilePath) < E) continue;
+    if ((i % 1000) == 0 && i)
+      Printf("Loaded %zd/%zd files from %s\n", i, Files.size(), Path);
     V->push_back(FileToVector(FilePath));
   }
 }

Modified: llvm/trunk/lib/Fuzzer/FuzzerLoop.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/FuzzerLoop.cpp?rev=261143&r1=261142&r2=261143&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/FuzzerLoop.cpp (original)
+++ llvm/trunk/lib/Fuzzer/FuzzerLoop.cpp Wed Feb 17 13:42:34 2016
@@ -101,6 +101,8 @@ void Fuzzer::StaticAlarmCallback() {
 
 void Fuzzer::AlarmCallback() {
   assert(Options.UnitTimeoutSec > 0);
+  if (!CurrentUnitSize)
+    return; // We have not started running units yet.
   size_t Seconds =
       duration_cast<seconds>(system_clock::now() - UnitStartTime).count();
   if (Seconds == 0)




More information about the llvm-commits mailing list