blob: ed31fa22b34b3a47f05b66df0f34a5afa2a7f6b2 [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 Serebryanyd2169222016-10-01 01:04:29 +000034 bool Shrink = false;
Kostya Serebryany9adc7c82016-10-08 22:12:14 +000035 int ReloadIntervalSec = 1;
Kostya Serebryany556894f2016-09-21 02:05:39 +000036 bool ShuffleAtStartUp = true;
37 bool PreferSmall = true;
38 size_t MaxNumberOfRuns = -1L;
39 int ReportSlowUnits = 10;
40 bool OnlyASCII = false;
41 std::string OutputCorpus;
42 std::string ArtifactPrefix = "./";
43 std::string ExactArtifactPath;
Kostya Serebryany5ff481f2016-09-27 00:10:20 +000044 std::string ExitOnSrcPos;
Kostya Serebryanyd2169222016-10-01 01:04:29 +000045 std::string ExitOnItem;
Kostya Serebryany556894f2016-09-21 02:05:39 +000046 bool SaveArtifacts = true;
47 bool PrintNEW = true; // Print a status line when new units are found;
48 bool OutputCSV = false;
49 bool PrintNewCovPcs = false;
50 bool PrintFinalStats = false;
Kostya Serebryany29bb6642016-09-21 22:42:17 +000051 bool PrintCorpusStats = false;
Kostya Serebryany556894f2016-09-21 02:05:39 +000052 bool PrintCoverage = false;
53 bool DetectLeaks = true;
Kostya Serebryany556894f2016-09-21 02:05:39 +000054};
55
56} // namespace fuzzer
57
58#endif // LLVM_FUZZER_OPTIONS_H