1 //===- 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 
17 namespace fuzzer {
18 
19 struct 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 UseCmp = false;
34   bool UseValueProfile = false;
35   bool Shrink = 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 OutputCSV = false;
50   bool PrintNewCovPcs = false;
51   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 };
65 
66 }  // namespace fuzzer
67 
68 #endif  // LLVM_FUZZER_OPTIONS_H
69