blob: fc8141caca9e4e1a8e81bfa2c5d3d9b2646aa637 [file] [log] [blame]
Kostya Serebryany556894f2016-09-21 02:05:39 +00001//===- FuzzerOptions.h - Internal header for the Fuzzer ---------*- C++ -* ===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9// fuzzer::FuzzingOptions
10//===----------------------------------------------------------------------===//
11
12#ifndef LLVM_FUZZER_OPTIONS_H
13#define LLVM_FUZZER_OPTIONS_H
14
15#include "FuzzerDefs.h"
16
17namespace fuzzer {
18
19struct FuzzingOptions {
20 int Verbosity = 1;
21 size_t MaxLen = 0;
22 int UnitTimeoutSec = 300;
23 int TimeoutExitCode = 77;
24 int ErrorExitCode = 77;
25 int MaxTotalTimeSec = 0;
26 int RssLimitMb = 0;
27 bool DoCrossOver = true;
28 int MutateDepth = 5;
29 bool UseCounters = false;
30 bool UseIndirCalls = true;
31 bool UseMemcmp = true;
32 bool UseMemmem = true;
33 bool UseFullCoverageSet = false;
34 bool Reload = true;
35 bool ShuffleAtStartUp = true;
36 bool PreferSmall = true;
37 size_t MaxNumberOfRuns = -1L;
38 int ReportSlowUnits = 10;
39 bool OnlyASCII = false;
40 std::string OutputCorpus;
41 std::string ArtifactPrefix = "./";
42 std::string ExactArtifactPath;
43 bool SaveArtifacts = true;
44 bool PrintNEW = true; // Print a status line when new units are found;
45 bool OutputCSV = false;
46 bool PrintNewCovPcs = false;
47 bool PrintFinalStats = false;
48 bool PrintCoverage = false;
49 bool DetectLeaks = true;
50 bool PruneCorpus = true;
51};
52
53} // namespace fuzzer
54
55#endif // LLVM_FUZZER_OPTIONS_H