2023-11-18 10:59:00 -07:00
|
|
|
# The default configuration for the Gazprea Fuzzer
|
|
|
|
---
|
|
|
|
generation-options:
|
|
|
|
max-nesting-depth: 5 # maximum nesting depth for statements
|
|
|
|
max-conditionals-loops: 5 # maximum number of loops/conditionals per routine
|
|
|
|
max-number-of-routines: 5 # maximum number of routines (main will always be generated)
|
|
|
|
generate-dead-code: True # generate dead code
|
2023-11-23 12:51:13 -07:00
|
|
|
max-loop-iterations: 100 # maximum number of iterations in a loop
|
|
|
|
max-globals: 5 # maximum number of global variables
|
2023-11-18 10:59:00 -07:00
|
|
|
properties:
|
|
|
|
max-range-length: 5 # maximum length of ranges, vectors and tuples, (AxA matrices can exist)
|
|
|
|
use-english-words: True # use english words instead of random names (this may limit the maximum number of names)
|
|
|
|
id-length: # length of identifiers
|
|
|
|
min: 1
|
2023-11-23 12:51:13 -07:00
|
|
|
max: 5
|
2023-11-18 10:59:00 -07:00
|
|
|
function-name-length: # length of function names
|
|
|
|
min: 1
|
|
|
|
max: 10
|
|
|
|
number-of-arguments: # number of arguments to a routine
|
|
|
|
min: 1
|
|
|
|
max: 10
|
2023-11-23 12:51:13 -07:00
|
|
|
generate-max-int: False # if False, generate integers between [-1000, 1000] else
|
2023-11-18 10:59:00 -07:00
|
|
|
expression-weights: # weights for expressions
|
|
|
|
# the higher a weight, the more likely (0, 10000), 0 to exclude, 10000 for only that
|
|
|
|
brackets: 10
|
|
|
|
|
|
|
|
arithmetic:
|
|
|
|
addition: 80
|
|
|
|
subtraction: 80
|
|
|
|
multiplication: 30
|
|
|
|
division: 10
|
|
|
|
modulo: 10
|
|
|
|
power: 5
|
|
|
|
|
|
|
|
comparison:
|
|
|
|
equality: 50
|
|
|
|
inequality: 50
|
|
|
|
less-than: 30
|
|
|
|
greater-than: 30
|
|
|
|
less-than-or-equal: 10
|
|
|
|
greater-than-or-equal: 10
|
|
|
|
|
|
|
|
logical:
|
|
|
|
and: 50
|
|
|
|
or: 50
|
|
|
|
xor: 10
|
|
|
|
|
|
|
|
vector-or-string:
|
|
|
|
generator: 20
|
|
|
|
range: 30
|
|
|
|
filter: 10
|
|
|
|
reverse: 10
|
|
|
|
concatenation: 50
|
|
|
|
|
|
|
|
unary:
|
|
|
|
noop: 10
|
|
|
|
negation: 20
|
|
|
|
not: 10
|
|
|
|
|
|
|
|
|
|
|
|
statement-weights: # set to 0 for any statements you wish to exclude
|
|
|
|
variable-declaration: 50
|
|
|
|
routine-call: 20
|
|
|
|
conditional: 30
|
|
|
|
loop: 20
|
|
|
|
assignment: 40
|
|
|
|
out-stream: 20
|
|
|
|
in-stream: 5
|
|
|
|
|
|
|
|
type-weights:
|
|
|
|
value-types:
|
|
|
|
integer: 50
|
|
|
|
real: 50
|
|
|
|
boolean: 50
|
|
|
|
character: 50
|
|
|
|
void: 10
|
|
|
|
composite-types:
|
|
|
|
vector: 20
|
|
|
|
tuple: 5
|
|
|
|
matrix: 10
|
|
|
|
string: 10
|
|
|
|
composite: 0 #TODO add support for composite types
|
|
|
|
atomic: 40
|
|
|
|
|
|
|
|
routine-weights:
|
|
|
|
procedure: 20
|
|
|
|
function: 50
|
|
|
|
|
|
|
|
misc-weights:
|
|
|
|
type-qualifier-weights:
|
|
|
|
const: 10
|
|
|
|
var: 60
|
|
|
|
|
|
|
|
block-termination-probability: 0.2 # probability for a block to terminate
|
|
|
|
|
|
|
|
|