Skip to content

Conversation

@meddle0x53
Copy link
Contributor

Motivation

Generating test coverage reports for the SnarkVM repo is very CPU/RAM heavy and time taking (days). Because of that I am introducing a new script that mirrors the CI (by dividing the tests in groups/workflows) and coverage reports can be sone by groups.

The script has the ability to merge these reports and to cover all tests like that.

The idea is to run this script for every group on a very powerful machine/VM from time to time and then generate a report.
I do not recommend this to be done on the CI, but the CI may create some VM that does it and can gather results after it is done on specific branch, or something similar to the stress tests manager can do that.

All depends on the costs. I spent some time trying to make it work and came with this idea. I have an idea for code analysis for a very loose coverage report, but won't be including it here, as it is very experimental.

Test Plan

I successfully ran two groups locally and merged them. Couldn't run heavier groups like the ledger on my machine, tried to make it lighter and do it but was not really possible. Can be done with the optional custom filters I left in the script as logic and test tagging, but the idea is not to see what my machine can run, so with the circuit and misc groups I had success.

Documentation

This script has a README in the PR.

Backwards compatibility

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant