1 //===- FuzzerOptions.h - Internal header for the Fuzzer ---------*- C++ -* ===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
9 // fuzzer::FuzzingOptions
10 //===----------------------------------------------------------------------===//
12 #ifndef LLVM_FUZZER_OPTIONS_H
13 #define LLVM_FUZZER_OPTIONS_H
15 #include "FuzzerDefs.h"
19 struct FuzzingOptions {
22 bool ExperimentalLenControl = false;
23 int UnitTimeoutSec = 300;
24 int TimeoutExitCode = 77;
25 int ErrorExitCode = 77;
26 int MaxTotalTimeSec = 0;
28 bool DoCrossOver = true;
30 bool UseCounters = false;
31 bool UseIndirCalls = true;
32 bool UseMemcmp = true;
33 bool UseMemmem = true;
35 bool UseValueProfile = 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 bool SaveArtifacts = true;
49 bool PrintNEW = true; // Print a status line when new units are found;
50 bool OutputCSV = false;
51 bool PrintNewCovPcs = false;
52 bool PrintFinalStats = false;
53 bool PrintCorpusStats = false;
54 bool PrintCoverage = false;
55 bool DumpCoverage = false;
56 bool DetectLeaks = true;
58 bool HandleAbrt = false;
59 bool HandleBus = false;
60 bool HandleFpe = false;
61 bool HandleIll = false;
62 bool HandleInt = false;
63 bool HandleSegv = false;
64 bool HandleTerm = false;
65 bool HandleXfsz = false;
70 #endif // LLVM_FUZZER_OPTIONS_H