neo-go icon indicating copy to clipboard operation
neo-go copied to clipboard

Optimize per-executor neotest coverage collection

Open AnnaShaleva opened this issue 1 year ago • 2 comments

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.

AnnaShaleva avatar Aug 16 '24 09:08 AnnaShaleva

Makes sense.

roman-khimov avatar Aug 18 '24 12:08 roman-khimov

hits hard with the growth of tests in NeoFS contract repo:

  1. we had 330.782s at some point (pretty long itself) https://github.com/nspcc-dev/neofs-contract/actions/runs/19504140965/job/55825690985
  2. then https://github.com/nspcc-dev/neofs-contract/pull/534 increased duration to 486.712s https://github.com/nspcc-dev/neofs-contract/actions/runs/19573736994/job/56053418656
  3. finally, in https://github.com/nspcc-dev/neofs-contract/pull/549 i added some more tests and exceeded default timeout 10m https://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

cthulhu-rider avatar Nov 27 '25 11:11 cthulhu-rider