crytic / crytic/fuzz-utils

Real time coverage report chart

Open
#45 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Solidity
Stars
115
Forks
6
PR merge metrics
No merged PRs in 30d

Description

### Describe the desired feature

I would like to get a coverage report chart by parsing Echidna/Medusa logs

Example

```
echidna . --target CryticTester --config echidna.yaml | fuzz-utils --chart
```

![image](https://github.com/crytic/fuzz-utils/assets/3029017/803cf2c7-8802-4086-9566-9b396515512a)
([Source](https://link.springer.com/chapter/10.1007/978-3-031-29371-9_7))

or

```
medusa fuzz | fuzz-utils --chart
```

Also:

```
[I] ➜ cat /tmp/echidna.log
[2024-04-04 14:27:49.59] Compiling CryticTester.sol... Done! (0.799778s)
Analyzing contract: CryticTester.sol:CryticTester
[2024-04-04 14:27:53.46] Running slither on CryticTester.sol... Done! (0.939738s)
Loaded 0 transaction sequences from echidna/reproducers
Loaded 0 transaction sequences from echidna/coverage
[2024-04-04 14:27:54.41] [Worker 6] New maximum value of echidna_optimize_extracted_profit: 0
[2024-04-04 14:27:54.41] [Worker 2] New maximum value of echidna_optimize_extracted_profit: 0
[2024-04-04 14:27:54.41] [Worker 3] New maximum value of echidna_optimize_extracted_profit: 0
[2024-04-04 14:27:54.41] [Worker 7] New maximum value of echidna_optimize_extracted_profit: 0
[2024-04-04 14:27:54.41] [Worker 0] New maximum value of echidna_optimize_extracted_profit: 0
[2024-04-04 14:27:54.41] [Worker 4] New maximum value of echidna_optimize_extracted_profit: 0
[2024-04-04 14:27:54.41] [Worker 5] New maximum value of echidna_optimize_extracted_profit: 0
[2024-04-04 14:27:57.41] [status] tests: 0/1, fuzzing: 0/1000000, values: [0], cov: 2136, corpus: 0
[2024-04-04 14:28:00.41] [status] tests: 0/1, fuzzing: 0/1000000, values: [0], cov: 3053, corpus: 0
[2024-04-04 14:28:03.41] [status] tests: 0/1, fuzzing: 0/1000000, values: [0], cov: 3874, corpus: 0
[2024-04-04 14:28:06.41] [status] tests: 0/1, fuzzing: 0/1000000, values: [0], cov: 4086, corpus: 0
[2024-04-04 14:28:09.41] [status] tests: 0/1, fuzzing: 0/1000000, values: [0], cov: 4122, corpus: 0
[2024-04-04 14:28:12.47] [status] tests: 0/1, fuzzing: 0/1000000, values: [0], cov: 4682, corpus: 0
[2024-04-04 14:28:15.47] [status] tests: 0/1, fuzzing: 0/1000000, values: [0], cov: 5026, corpus: 0
[2024-04-04 14:28:18.86] [status] tests: 0/1, fuzzing: 0/1000000, values: [0], cov: 5542, corpus: 0
[2024-04-04 14:28:20.31] [Worker 7] New coverage: 5542 instr, 5 contracts, 1 seqs in corpus
[2024-04-04 14:28:20.63] [Worker 5] New coverage: 5542 instr, 5 contracts, 2 seqs in corpus
[2024-04-04 14:28:21.05] [Worker 2] New coverage: 5542 instr, 5 contracts, 3 seqs in corpus
[2024-04-04 14:28:21.86] [status] tests: 0/1, fuzzing: 303/1000000, values: [0], cov: 5542, corpus: 3

[I] ➜ tail -f /tmp/echidna.log | fuzz-utils --chart
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.