crytic / echidna

Ethereum smart contract fuzzer
https://secure-contracts.com/program-analysis/echidna/index.html
GNU Affero General Public License v3.0
2.72k stars 362 forks source link

[Bug-Candidate]: Fix coverage report #1213

Open 0xicingdeath opened 6 months ago

0xicingdeath commented 6 months ago

Describe the issue:

Unclear how to read the coverage report when there is no additional information from Echidna on the state of these properties.

As an example, for the following screenshot, I'm not sure how to interpret this. What happened on the USDC.borrow for it to never be hit, but the DAI borrow could occur?

cov-output-echidna

On the flip side, how should I interpret the following? The fuzzer never showed me an assertion failure on this property, so my intuition is that it should be successful (therefore all statements running green)? - yet the assertWithMsg is showing up as red. additional-cov-output

Code example to reproduce the issue:

Curvance :)

Version:

Echidna 2.2.3

Relevant log output:

No response

ggrieco-tob commented 6 months ago

Do you have an screenshot on how this is covered by medusa? If the coverage looks the same, then it looks like an issue with the sourcemap, otherwise, it could be a bug in echidna.

0xicingdeath commented 6 months ago

If I'm not mistaken, Medusa was hitting all green on the second example for setCTokenCollateralCaps_should_succeed, but was unable to hit the first example (related to repays / borrows).

Unfortunately don't have a screenshot of it though.. current version of coverage output (i.e: post-rebase) does not hit this function