Optimize per-executor neotest coverage collection #1351

Open
opened 2025-12-28 17:16:08 +00:00 by sami · 2 comments
Owner

Originally created by @AnnaShaleva on GitHub (Aug 16, 2024).

#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.

Originally created by @AnnaShaleva on GitHub (Aug 16, 2024). ## 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.
Author
Owner

@roman-khimov commented on GitHub (Aug 18, 2024):

Makes sense.

@roman-khimov commented on GitHub (Aug 18, 2024): Makes sense.
Author
Owner

@cthulhu-rider commented on GitHub (Nov 27, 2025):

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 commented on GitHub (Nov 27, 2025): 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
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nspcc-dev/neo-go#1351
No description provided.