Revert "[libfuzzer] Reduce default verbosity when printing large mutation sequences"
authorMatt Morehouse <mascasa@google.com>
Tue, 1 Sep 2020 19:49:00 +0000 (12:49 -0700)
committerMatt Morehouse <mascasa@google.com>
Tue, 1 Sep 2020 19:49:41 +0000 (12:49 -0700)
This reverts commit 2665425908e00618074e42155ec922a37f7c9002 due to
buildbot failure.

compiler-rt/lib/fuzzer/FuzzerLoop.cpp
compiler-rt/lib/fuzzer/FuzzerMutate.cpp
compiler-rt/lib/fuzzer/FuzzerMutate.h
compiler-rt/test/fuzzer/CustomMutatorWithLongSequencesTest.cpp [deleted file]
compiler-rt/test/fuzzer/fuzzer-custommutator.test

index 3912656..02db6d2 100644 (file)
@@ -600,7 +600,7 @@ void Fuzzer::PrintStatusForNewUnit(const Unit &U, const char *Text) {
   PrintStats(Text, "");
   if (Options.Verbosity) {
     Printf(" L: %zd/%zd ", U.size(), Corpus.MaxInputSize());
-    MD.PrintMutationSequence(Options.Verbosity >= 2);
+    MD.PrintMutationSequence();
     Printf("\n");
   }
 }
index ac17d99..df9ada4 100644 (file)
@@ -18,7 +18,6 @@
 namespace fuzzer {
 
 const size_t Dictionary::kMaxDictSize;
-static const size_t kMaxMutationsToPrint = 10;
 
 static void PrintASCII(const Word &W, const char *PrintAfter) {
   PrintASCII(W.data(), W.size(), PrintAfter);
@@ -482,21 +481,15 @@ void MutationDispatcher::PrintRecommendedDictionary() {
   Printf("###### End of recommended dictionary. ######\n");
 }
 
-void MutationDispatcher::PrintMutationSequence(bool Verbose) {
+void MutationDispatcher::PrintMutationSequence() {
   Printf("MS: %zd ", CurrentMutatorSequence.size());
-  size_t EntriesToPrint =
-      Verbose ? CurrentMutatorSequence.size()
-              : std::min(kMaxMutationsToPrint, CurrentMutatorSequence.size());
-  for (size_t i = 0; i < EntriesToPrint; i++)
-    Printf("%s-", CurrentMutatorSequence[i].Name);
+  for (auto M : CurrentMutatorSequence)
+    Printf("%s-", M.Name);
   if (!CurrentDictionaryEntrySequence.empty()) {
     Printf(" DE: ");
-    EntriesToPrint = Verbose ? CurrentDictionaryEntrySequence.size()
-                             : std::min(kMaxMutationsToPrint,
-                                        CurrentDictionaryEntrySequence.size());
-    for (size_t i = 0; i < EntriesToPrint; i++) {
+    for (auto DE : CurrentDictionaryEntrySequence) {
       Printf("\"");
-      PrintASCII(CurrentDictionaryEntrySequence[i]->GetW(), "\"-");
+      PrintASCII(DE->GetW(), "\"-");
     }
   }
 }
index e44621a..6cbce80 100644 (file)
@@ -24,9 +24,8 @@ public:
   ~MutationDispatcher() {}
   /// Indicate that we are about to start a new sequence of mutations.
   void StartMutationSequence();
-  /// Print the current sequence of mutations. Only prints the full sequence
-  /// when Verbose is true.
-  void PrintMutationSequence(bool Verbose = true);
+  /// Print the current sequence of mutations.
+  void PrintMutationSequence();
   /// Indicate that the current sequence of mutations was successful.
   void RecordSuccessfulMutationSequence();
   /// Mutates data by invoking user-provided mutator.
diff --git a/compiler-rt/test/fuzzer/CustomMutatorWithLongSequencesTest.cpp b/compiler-rt/test/fuzzer/CustomMutatorWithLongSequencesTest.cpp
deleted file mode 100644 (file)
index 4c97147..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-// Simple test for a cutom mutator that results in long sequences of mutations.
-#include <assert.h>
-#include <cstddef>
-#include <cstdint>
-#include <cstdlib>
-#include <iostream>
-#include <ostream>
-
-#include "FuzzerInterface.h"
-
-static volatile int Sink;
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
-  assert(Data);
-  if (Size > 0 && Data[0] == 'H') {
-    Sink = 1;
-    if (Size > 1 && Data[1] == 'i') {
-      Sink = 2;
-      if (Size > 2 && Data[2] == '!') {
-        std::cout << "BINGO; Found the target, exiting\n"
-                  << std::flush;
-        exit(1);
-      }
-    }
-  }
-  return 0;
-}
-
-extern "C" size_t LLVMFuzzerCustomMutator(uint8_t *Data, size_t Size,
-                                          size_t MaxSize, unsigned int Seed) {
-  // Run this 25 times to generate a large mutation sequence.
-  for (size_t i = 0; i < 25; i++) {
-    LLVMFuzzerMutate(Data, Size, MaxSize);
-  }
-  return LLVMFuzzerMutate(Data, Size, MaxSize);
-}
index ddfb5bc..25f5fe6 100644 (file)
@@ -11,13 +11,3 @@ LLVMFuzzerCustomMutatorWithLenControl: INFO: found LLVMFuzzerCustomMutator
 LLVMFuzzerCustomMutatorWithLenControl: In LLVMFuzzerCustomMutator
 LLVMFuzzerCustomMutatorWithLenControl: {{.*}} lim: {{[1-9][0-9]?}} {{.*}}
 LLVMFuzzerCustomMutatorWithLenControl: BINGO
-
-# sanity check: verify that we do get long lines with verbose printing on
-RUN: %cpp_compiler %S/CustomMutatorWithLongSequencesTest.cpp -o %t-CustomMutatorWithLongSequencesTest
-RUN: not %run %t-CustomMutatorWithLongSequencesTest -verbosity=2 2> %t-mutate-verbose-log
-RUN: grep "NEW" %t-mutate-verbose-log | grep '.\{1024\}'
-
-# check a target that prints long mutation sequences and verifies the printed
-# output does not get too large
-RUN: not %run %t-CustomMutatorWithLongSequencesTest 2> %t-mutate-log
-RUN: grep "NEW" %t-mutate-log | grep -v '.\{1024\}'