Output Format
Describe output format of sFuzz
Last updated
Describe output format of sFuzz
Last updated
sFuzz reports outputs to two destinations: Terminal and Files. Terminal displays overall progress and Files provides extra data.
processing time
run time: total execution time of process
last new path: duration from the latest path have been discovered till now
stage progress
now trying: current mutation operator applying to generate more test cases
stage execs: the number of executed test case per total number of generated test case for now trying mutation operator. Whenever percentage is 100%, sfuzz will move to next mutation operator.
total execs: total number of executed test cases.
exec speed: speed of fuzzing process, it equal to number of executed test cases / run time
cycle prog: all test seeds of current contract are stored in a queue, sfuzz will fuzz one by one and move from the beginning to the end of that queue. Whenever sFuzz reaches to the last element, it jumps back to the beginning element, at this time one sFuzz finishes one cycle. The number describes its position in queue
overall results
cycles done: the number of cycles sFuzz has completed.
tuples: N/A
branches: total number of discovered branches
bit/tuples: N/A
coverage: branch coverage
fuzzing yields
bit flips: there are 3 pairs: 0/0, 0/0, 0/0. Each pair is the number of generated test cases per expected number of test cases in a child stage of bit flip, e.g: single walking bit, two walking bit, four walking bit
byte flips, arithmetics, known ints, dictionary, havoc, random are similar to bit flips but different stage mutation operator
call order: N/A
path geometry
pending: how many test seeds left in current queue cycle.
pending fav: same as pending but test seeds haven't been fuzzed by sFuzz
max depth: when a test case is generated from a test seed, its depth will be depth of that test seed + 1
except type: how many exception types occur. There are many types such as BadInstruction
uniq except: N/A
predicates: N/A
oracle yields: List of all supported vulnerabilities, found means vulnerable
sFuzz creates many file formats to keep track of running contract, all of them are stored in a folder. The table below describes file name and its corresponding meaning. It is noted that: X is a number.
Pattern | Description |
| contain a list of functions and account system, values are encoded in hex format. Account system is a list of address and balance tuples, |
| E.g: a contract contains 3 functions: |
__TEST__X__.out | N/A |
__TEST__X__.storage | N/A |
__TEST__X__.address | N/A |
__TEST__X__.bin | N/A |
stats.csv | N/A |
Notice: N/A indicates that it is temporary file for other projects, the format is unstable and will be changed in future.