-
Notifications
You must be signed in to change notification settings - Fork 54
/
statetests.ini
116 lines (89 loc) · 3.48 KB
/
statetests.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
[DEFAULT]
fork_config = ConstantinopleFix
clients = geth,parity
artefacts = ~/tmp/evmlab/artefacts/
tests_path = /datadrive/evmlabtemp/
geth.docker_name = ethereum/client-go:alltools-latest
cpp.docker_name = holiman/testeth
testeth.docker_name = holiman/testeth
parity.docker_name = holiman/parityvm
hera.docker_name = holiman/hera
#py.docker_name = cdetrio/pyethereum
#cpp.docker_name = cdetrio/std-cpp-ethereum
#parity.docker_name = cdetrio/std-parity
#geth.docker_name = cdetrio/std-geth
#testeth.docker_name = cdetrio/testeth
#js.docker_name = jwasinger/ethereumjs-vm
[martin]
geth.docker_name = ethereum/client-go:alltools-latest
cpp.docker_name = holiman/testeth
testeth.docker_name = holiman/testeth
#testeth.docker_name = cdetrio/testeth
[statetest]
info.comment = evmlab statetest
#env.difficulty = 0x20000
#env.gaslimit = 0x1312D00
#env.number = 1
#env.timestamp = 1000
#env.coinbase = 0x...address
#env.previousHash = 0x..address
# max and min random storage slots to generate for prestates
#prestate.storage.random.slots.min = 0
#prestate.storage.random.slots.max = 2
#prestate.random.code.length.min = 50
#prestate.random.code.length.max = 500
## performance: prestate regeneration behavior
# renew.every.x.rounds ... 1 = always
# renew.limit.per.round ... max number of existing prestates to regenerate in a round. 0 = all
#prestate.txto.renew.every.x.rounds = 1
#prestate.other.renew.every.x.rounds = 1
#prestate.other.renew.limit.per.round = 0
# transaction gas limit
#transaction.gaslimit.random.min = 476000
#transaction.value.random.min = 0
#transaction.value.random.max = 16777216
[codegen]
# Codegenerator settings
engine.RndCodeBytes.enabled = true
engine.RndCodeInstr.enabled = true
engine.RndCodeSmart2.enabled = true
## probabilities for each codegen to be chosen
engine.RndCodeBytes.weight = 5
engine.RndCodeInstr.weight = 25
engine.RndCodeSmart2.weight = 70
# [[RndCodeInstr]]
# 99.0%
engine.RndCodeInstr.smartCodeProbability.p = 990
## this is the default length to be generated. might be overriden by prestate.random.code.length.min/max
#engine.RndCodeInstr.default.length = 50
# [[RndCodeSmart2]]
# special settings for
engine.RndCodeSmart2.min_gas = 100
#engine.RndCodeSmart2.generator = RndCodeGenGauss
#engine.RndCodeSmart2.distribution = EVM_CATEGORY
# fix code length to a specific value. otherwise take random length value from distribution
#engine.RndCodeSmart2.length = 800
## probabilities
# 0 = disabled
# values are x/1000. i.e. 99 ^== 9.9 %
engine.RndCodeSmart2.fixes.fix_stack_arguments.p = 995
engine.RndCodeSmart2.fixes.fix_stack_balance.p = 950
# not yet configurable
# engine.RndCodeSmart2.fixes.fix_jumps.p = 995
## Mutation probabilities
### instruction mutator
engine.RndCodeSmart2.mutate.instructions.p = 10
# random(1, max_amount)
engine.RndCodeSmart2.mutate.instructions.max_amount = 3
engine.RndCodeSmart2.mutate.instructions.randomize_operand.weight = 60
engine.RndCodeSmart2.mutate.instructions.drop_item.weight = 10
engine.RndCodeSmart2.mutate.instructions.dup_instruction.weight = 20
engine.RndCodeSmart2.mutate.instructions.insert_random_instructions.weight = 10
# byte mutator
engine.RndCodeSmart2.mutate.bytecode.p = 1
# random(1, max_amount)
engine.RndCodeSmart2.mutate.bytecode.max_amount = 3
engine.RndCodeSmart2.mutate.bytecode.randomize_operand.weight = 50
engine.RndCodeSmart2.mutate.bytecode.insert_random_bytes.weight = 10
engine.RndCodeSmart2.mutate.bytecode.drop_byte.weight = 20
engine.RndCodeSmart2.mutate.bytecode.switch_random.weight = 20