config

package
v0.0.0-...-a517693 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2016 License: GPL-3.0 Imports: 6 Imported by: 4

Documentation

Index

Constants

View Source
const (
	FUZZER_RADAMSA_MULTIFILE = "radamsa_multifile"
	FUZZER_RADAMSA           = "radamsa"
	FUZZER_NOP               = "nop"

	RUNMODE_COVER_ALL_ONCE  = "cover_all_once"
	RUNMODE_INFINITE_RANDOM = "infinite_random"

	INTERPRETER_ARGS_FUZZ_FILE_MARKER     = "XXX_FUZZFILE_XXX"
	INTERPRETER_ARGS_FUZZ_FILE_DIR_MARKER = "XXX_FUZZFILEDIR_XXX"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	General struct {
		// Seed specifies the seed that will be used for any random number
		// generation required internally in the tool, or as an argument to
		// external tools e.g. radamsa
		Seed int
		// EnableDebugLog indicates whether verbose logging for the purposes
		// of debugging should be enabled or not
		EnableDebugLog bool
	}

	SeedTests struct {
		// Dir is a path to a directory that will traversed, including
		// sub-directories, in order to find files that end in an extension
		// found in the ValidExts slice. Each matching file will be
		// considered a seed test.
		Dir string
		// ValidExts, in combination with Dir, is used to find seed tests
		ValidExts []string
		// ListFile can be used instead of Dir+ValidExts to specify the paths
		// of all seed tests to be included. The paths should simply be listed
		// with a newline separating each.
		ListFile string
	}

	TestProcessing TestProcessingConfig

	Radamsa struct {
		// Mutations is the mutations argument to be passed to radamsa. See
		// the output of the `radamsa -l` command for details
		Mutations string
	}

	Interpreter struct {
		// Path specifies the path to the interpreter that will be
		// used to process each test case
		Path string
		// Args is a string specifying the arguments to be provided
		// to the interpreter. The string provided by the constant
		// INTERPRETER_ARGS_FUZZ_FILE_MARKER should appear at least once. This
		// marker will be replaced by the path to the test case on each
		// invocation of the interpreter. The string provided by the constant
		// INTERPRETER_ARGS_FUZZ_FILE_DIR_MARKER may appear any number of
		// times, and will be replaced by the directory in which the test
		// resides.
		Args string
		// ArgGen specifies the name of an argument generator function. Such
		// functions are provided by malamute to dynamically generate the
		// required arguments for each test case. The following are the
		// available values
		//	- FfJsRefTest : Generate arguments for the Firefox Javascript shell
		//		ref tests
		//
		ArgGen string
		// TestCasePathPrefix is the root directory containing all tests cases.
		// If ArgGen is provided then this may also be provided, and will be
		// passed to the argument generator, for its use
		TestCaseRootDir string
		// Timeout indicates the maximum run time, in seconds, of a single
		// instantiation of the interpreter
		Timeout int
	}
}

func Load

func Load(path string) (*Config, error)

type TestProcessingConfig

type TestProcessingConfig struct {
	// Fuzzer specifies the fuzzer to use to generate tests from the seed
	// tests. See the FUZZER_* constants for valid values.
	Fuzzer string
	// MultiFileFuzzerSeedCountMin specifies the minimum number of seeds to
	// be feed to the mutator on each iteration of a multi-file mutator
	MultiFileFuzzerSeedCountMin int
	// MultiFileFuzzerSeedCountMax specifies the minimum number of seeds to
	// be feed to the mutator on each iteration of a multi-file mutator
	MultiFileFuzzerSeedCountMax int
	// BatchSize is used to configure how many test cases are generated
	// at a time, from each seed
	BatchSize int
	// TestCount specifies an upper limit on the total number of test
	// cases to process
	TestCount int
	// Mode specifies the run mode for seed test processing. It can either
	// be configured to cover each seed test once (generating BatchSize)
	// tests for each seed, or to run forever, randomly selecting seed
	// tests as it goes.
	Mode string
	// GenerateTestsInPlace indicates if the test cases should be
	// generated in the same directory as the seed tests, or in a
	// a clean directory.
	GenerateTestsInPlace bool
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL