blob: bfac3b685e3edf993e196ea915c5a32fdee9495e [file] [log] [blame]
george.karpenkov29efa6d2017-08-21 23:25:50 +00001//
2// The LLVM Compiler Infrastructure
3//
4// This file is distributed under the University of Illinois Open Source
5// License. See LICENSE.TXT for details.
6//
7//===----------------------------------------------------------------------===//
8// fuzzer::FuzzingOptions
9//===----------------------------------------------------------------------===//
10
11#ifndef LLVM_FUZZER_OPTIONS_H
12#define LLVM_FUZZER_OPTIONS_H
13
14#include "FuzzerDefs.h"
15
16namespace fuzzer {
17
18struct FuzzingOptions {
19 int Verbosity = 1;
20 size_t MaxLen = 0;
21 bool ExperimentalLenControl = false;
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 UseMemmem = true;
32 bool UseCmp = false;
33 bool UseValueProfile = false;
34 bool Shrink = false;
35 bool ReduceInputs = false;
36 int ReloadIntervalSec = 1;
37 bool ShuffleAtStartUp = true;
38 bool PreferSmall = true;
39 size_t MaxNumberOfRuns = -1L;
40 int ReportSlowUnits = 10;
41 bool OnlyASCII = false;
42 std::string OutputCorpus;
43 std::string ArtifactPrefix = "./";
44 std::string ExactArtifactPath;
45 std::string ExitOnSrcPos;
46 std::string ExitOnItem;
47 bool SaveArtifacts = true;
48 bool PrintNEW = true; // Print a status line when new units are found;
49 bool PrintNewCovPcs = false;
kccec9da662017-08-28 22:52:22 +000050 int PrintNewCovFuncs = 0;
george.karpenkov29efa6d2017-08-21 23:25:50 +000051 bool PrintFinalStats = false;
52 bool PrintCorpusStats = false;
53 bool PrintCoverage = false;
54 bool DumpCoverage = false;
55 bool DetectLeaks = true;
56 int TraceMalloc = 0;
57 bool HandleAbrt = false;
58 bool HandleBus = false;
59 bool HandleFpe = false;
60 bool HandleIll = false;
61 bool HandleInt = false;
62 bool HandleSegv = false;
63 bool HandleTerm = false;
64 bool HandleXfsz = false;
65};
66
67} // namespace fuzzer
68
69#endif // LLVM_FUZZER_OPTIONS_H