nspcc-dev / neo-go

Go Node and SDK for the NEO blockchain
MIT License
122 stars 78 forks source link

Optimize per-executor neotest coverage collection #3558

Open AnnaShaleva opened 1 month ago

AnnaShaleva commented 1 month ago

Is your feature request related to a problem? Please describe.

3462 enables neotest coverage, but it may be optimized. Currently covered OPs are stored in a global mutex-protected package-level variable and every Executor modifies it on every VM instruction handling. It slows our tests down if tests are running in parallel.

Describe the solution you'd like

Implement https://github.com/nspcc-dev/neo-go/pull/3462#discussion_r1718516293.

Describe alternatives you've considered

No alternatives, the proposed solution fits perfectly.

roman-khimov commented 1 month ago

Makes sense.