neo-go
neo-go copied to clipboard
Optimize per-executor neotest coverage collection
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.
Makes sense.
hits hard with the growth of tests in NeoFS contract repo:
- we had
330.782sat some point (pretty long itself) https://github.com/nspcc-dev/neofs-contract/actions/runs/19504140965/job/55825690985 - then https://github.com/nspcc-dev/neofs-contract/pull/534 increased duration to
486.712shttps://github.com/nspcc-dev/neofs-contract/actions/runs/19573736994/job/56053418656 - finally, in https://github.com/nspcc-dev/neofs-contract/pull/549 i added some more tests and exceeded default timeout
10mhttps://github.com/nspcc-dev/neofs-contract/actions/runs/19702909682/job/56443274046#step:4:8623
by increasing timeout to 20m, test almost reached 12m https://github.com/nspcc-dev/neofs-contract/actions/runs/19733726508/job/56540580452?pr=549