1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00

[libFuzzer] more refactoring the code that checks the coverage. NFC

llvm-svn: 251075
This commit is contained in:
Kostya Serebryany 2015-10-22 22:56:45 +00:00
parent e6c24f1866
commit 8c8cba5fa8
2 changed files with 9 additions and 8 deletions

View File

@ -128,7 +128,7 @@ class Fuzzer {
void RunOneAndUpdateCorpus(Unit &U);
void WriteToOutputCorpus(const Unit &U);
void WriteUnitToFileWithPrefix(const Unit &U, const char *Prefix);
void PrintStats(const char *Where, size_t Cov, const char *End = "\n");
void PrintStats(const char *Where, const char *End = "\n");
void PrintUnitInASCII(const Unit &U, const char *PrintAfter = "");
void SyncCorpus();

View File

@ -83,12 +83,13 @@ void Fuzzer::AlarmCallback() {
}
}
void Fuzzer::PrintStats(const char *Where, size_t Cov, const char *End) {
void Fuzzer::PrintStats(const char *Where, const char *End) {
if (!Options.Verbosity) return;
size_t Seconds = secondsSinceProcessStartUp();
size_t ExecPerSec = (Seconds ? TotalNumberOfRuns / Seconds : 0);
Printf("#%zd\t%s", TotalNumberOfRuns, Where);
Printf(" cov: %zd", Cov);
if (LastRecordedBlockCoverage)
Printf(" cov: %zd", LastRecordedBlockCoverage);
if (auto TB = TotalBits())
Printf(" bits: %zd", TB);
Printf(" units: %zd exec/s: %zd", Corpus.size(), ExecPerSec);
@ -118,7 +119,7 @@ void Fuzzer::RereadOutputCorpus() {
if (RunOne(CurrentUnit)) {
Corpus.push_back(X);
if (Options.Verbosity >= 1)
PrintStats("RELOAD", LastRecordedBlockCoverage);
PrintStats("RELOAD");
}
}
}
@ -130,7 +131,7 @@ void Fuzzer::ShuffleAndMinimize() {
USF.GetRand().RandBool()));
if (Options.Verbosity)
Printf("PreferSmall: %d\n", PreferSmall);
PrintStats("READ ", 0);
PrintStats("READ ");
std::vector<Unit> NewCorpus;
if (Options.ShuffleAtStartUp) {
std::random_shuffle(Corpus.begin(), Corpus.end(), USF.GetRand());
@ -157,7 +158,7 @@ void Fuzzer::ShuffleAndMinimize() {
Corpus = NewCorpus;
for (auto &X : Corpus)
UnitHashesAddedToCorpus.insert(Hash(X));
PrintStats("INITED", LastRecordedBlockCoverage);
PrintStats("INITED");
}
bool Fuzzer::RunOne(const Unit &U) {
@ -172,7 +173,7 @@ bool Fuzzer::RunOne(const Unit &U) {
auto TimeOfUnit =
duration_cast<seconds>(UnitStopTime - UnitStartTime).count();
if (!(TotalNumberOfRuns & (TotalNumberOfRuns - 1)) && Options.Verbosity)
PrintStats("pulse ", LastRecordedBlockCoverage);
PrintStats("pulse ");
if (TimeOfUnit > TimeOfLongestUnitInSeconds &&
TimeOfUnit >= Options.ReportSlowUnits) {
TimeOfLongestUnitInSeconds = TimeOfUnit;
@ -254,7 +255,7 @@ void Fuzzer::SaveCorpus() {
void Fuzzer::ReportNewCoverage(const Unit &U) {
Corpus.push_back(U);
UnitHashesAddedToCorpus.insert(Hash(U));
PrintStats("NEW ", LastRecordedBlockCoverage, "");
PrintStats("NEW ", "");
if (Options.Verbosity) {
Printf(" L: %zd", U.size());
if (U.size() < 30) {