2 // The LLVM Compiler Infrastructure
4 // This file is distributed under the University of Illinois Open Source
5 // License. See LICENSE.TXT for details.
7 //===----------------------------------------------------------------------===//
8 // fuzzer::FuzzingOptions
9 //===----------------------------------------------------------------------===//
11 #ifndef LLVM_FUZZER_OPTIONS_H
12 #define LLVM_FUZZER_OPTIONS_H
14 #include "FuzzerDefs.h"
18 struct FuzzingOptions {
21 size_t LenControl = 1000;
22 int UnitTimeoutSec = 300;
23 int TimeoutExitCode = 77;
24 int ErrorExitCode = 77;
25 int MaxTotalTimeSec = 0;
27 int MallocLimitMb = 0;
28 bool DoCrossOver = true;
30 bool ReduceDepth = false;
31 bool UseCounters = false;
32 bool UseMemmem = true;
34 int UseValueProfile = false;
36 bool ReduceInputs = false;
37 int ReloadIntervalSec = 1;
38 bool ShuffleAtStartUp = true;
39 bool PreferSmall = true;
40 size_t MaxNumberOfRuns = -1L;
41 int ReportSlowUnits = 10;
42 bool OnlyASCII = false;
43 std::string OutputCorpus;
44 std::string ArtifactPrefix = "./";
45 std::string ExactArtifactPath;
46 std::string ExitOnSrcPos;
47 std::string ExitOnItem;
48 std::string FocusFunction;
49 std::string DataFlowTrace;
50 bool SaveArtifacts = true;
51 bool PrintNEW = true; // Print a status line when new units are found;
52 bool PrintNewCovPcs = false;
53 int PrintNewCovFuncs = 0;
54 bool PrintFinalStats = false;
55 bool PrintCorpusStats = false;
56 bool PrintCoverage = false;
57 bool DumpCoverage = false;
58 bool DetectLeaks = true;
59 int PurgeAllocatorIntervalSec = 1;
61 bool HandleAbrt = false;
62 bool HandleBus = false;
63 bool HandleFpe = false;
64 bool HandleIll = false;
65 bool HandleInt = false;
66 bool HandleSegv = false;
67 bool HandleTerm = false;
68 bool HandleXfsz = false;
69 bool HandleUsr1 = false;
70 bool HandleUsr2 = false;
75 #endif // LLVM_FUZZER_OPTIONS_H