Revert "[libfuzzer] Reduce default verbosity when printing large mutation sequences"

This reverts commit 2665425908 due to
buildbot failure.
This commit is contained in:
Matt Morehouse 2020-09-01 12:49:00 -07:00
parent d7e16ca28f
commit 7139736261
5 changed files with 8 additions and 66 deletions

View 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");
}
}

View 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(), "\"-");
}
}
}

View 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.

View File

@ -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);
}

View 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\}'