blob: 56c35aa52533b7eee30696a07719ea7f41626104 [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;
Kostya Serebryanyab73c692016-09-23 00:46:18 +000033 bool UseValueProfile = false;
Kostya Serebryany556894f2016-09-21 02:05:39 +000034 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;
Kostya Serebryany5ff481f2016-09-27 00:10:20 +000043 std::string ExitOnSrcPos;
Kostya Serebryany556894f2016-09-21 02:05:39 +000044 bool SaveArtifacts = true;
45 bool PrintNEW = true; // Print a status line when new units are found;
46 bool OutputCSV = false;
47 bool PrintNewCovPcs = false;
48 bool PrintFinalStats = false;
Kostya Serebryany29bb6642016-09-21 22:42:17 +000049 bool PrintCorpusStats = false;
Kostya Serebryany556894f2016-09-21 02:05:39 +000050 bool PrintCoverage = false;
51 bool DetectLeaks = true;
52 bool PruneCorpus = true;
53};
54
55} // namespace fuzzer
56
57#endif // LLVM_FUZZER_OPTIONS_H