Add a script to run gcovr; update contributing guide to explain usage; integrate
with vscode presents; add execution to ci.
To use this, execute `scripts/coverage.sh`. This builds with coverage
instrumentation, runs the test suite, and produces:
* HTML report: `build_coverage/coverage/index.html` -- open in a browser to see
per-file line-by-line coverage highlighting
* MD report: `build_coverage/coverage/coverage.md` -- human-readable summary of
test coverage which gets attached to the GitHub actions build
* Cobertura XML: `build/coverage/cobertura.xml` -- machine-readable format used
by CI; this gets archived today with the build, but no other use is in place
yet
In the future another tool could be used to track coverage over time, or we
could institute minimum coverage requirements and have a GH actions
automatically open a comment when the coverage is not met, for instance.
Co-authored-by: GitHub Copilot <copilot@github.com> Signed-off-by: Ryan Turner
<ryan@turnrye.com>