Code coverage (#529)

Adds `make coverage` (cargo-llvm-cov over the full workspace including
revive-llvm-builder), a new "Code coverage" book chapter that briefly
explains how to run it, and a PR workflow that runs coverage and
comments on the PR (it updates the same comment if it already exists)
when the `measure code coverage` label is applied (see e.g. [this
comment](https://github.com/paritytech/revive/pull/529#issuecomment-4966136441)).

Building instrumented LLVM and generating an LLVM C++ coverage report is
also possible, see accompanying [PR description
#575](https://github.com/paritytech/revive/pull/575) for more details.

---------

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
Signed-off-by: xermicus <bigcyrill@hotmail.com>
Co-authored-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
Co-authored-by: xermicus <cyrill@parity.io>
Co-authored-by: elle-j <linnea@parity.io>
Co-authored-by: LJ <81748770+elle-j@users.noreply.github.com>
This commit is contained in:
authored and GitHub committed 2026-07-16 14:48:44 +02:00
1 parent ca3c770228
commit ed95ffbdfe
40 files changed
+882 -123

No files matched your search

+1 -1
View File
@@ -26,6 +26,6 @@
<!-- Custom theme stylesheets -->
</head>
<body class="sidebar-iframe-inner">
<ol class="chapter"><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="welcome.html" target="_parent"><strong aria-hidden="true">1.</strong> Welcome</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide.html" target="_parent"><strong aria-hidden="true">2.</strong> resolc user guide</a></span><ol class="section"><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/installation.html" target="_parent"><strong aria-hidden="true">2.1.</strong> Installation</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/cli.html" target="_parent"><strong aria-hidden="true">2.2.</strong> Command Line Interface</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/js.html" target="_parent"><strong aria-hidden="true">2.3.</strong> JS NPM package</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/tooling.html" target="_parent"><strong aria-hidden="true">2.4.</strong> Tooling integration</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/std_json.html" target="_parent"><strong aria-hidden="true">2.5.</strong> Standard JSON interface</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/differences.html" target="_parent"><strong aria-hidden="true">2.6.</strong> Differences to EVM</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/rust_libraries.html" target="_parent"><strong aria-hidden="true">2.7.</strong> Rust contract libraries</a></span></li></ol><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="revive_runner.html" target="_parent"><strong aria-hidden="true">3.</strong> revive-runner sandbox</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide.html" target="_parent"><strong aria-hidden="true">4.</strong> Developer Guide</a></span><ol class="section"><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/contributing.html" target="_parent"><strong aria-hidden="true">4.1.</strong> Contributor guide</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/architecture.html" target="_parent"><strong aria-hidden="true">4.2.</strong> Compiler architecture</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/newyork_optimizer.html" target="_parent"><strong aria-hidden="true">4.3.</strong> The newyork optimizer</a></span><ol class="section"><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/newyork_ir.html" target="_parent"><strong aria-hidden="true">4.3.1.</strong> IR reference</a></span></li></ol><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/target.html" target="_parent"><strong aria-hidden="true">4.4.</strong> PVM and the pallet-revive runtime target</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/testing.html" target="_parent"><strong aria-hidden="true">4.5.</strong> Testing strategy</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/cross_compilation.html" target="_parent"><strong aria-hidden="true">4.6.</strong> Cross compilation</a></span></li></ol><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="faq.html" target="_parent"><strong aria-hidden="true">5.</strong> FAQ</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="roadmap.html" target="_parent"><strong aria-hidden="true">6.</strong> Roadmap and Vision</a></span></li></ol>
<ol class="chapter"><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="welcome.html" target="_parent"><strong aria-hidden="true">1.</strong> Welcome</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide.html" target="_parent"><strong aria-hidden="true">2.</strong> resolc user guide</a></span><ol class="section"><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/installation.html" target="_parent"><strong aria-hidden="true">2.1.</strong> Installation</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/cli.html" target="_parent"><strong aria-hidden="true">2.2.</strong> Command Line Interface</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/js.html" target="_parent"><strong aria-hidden="true">2.3.</strong> JS NPM package</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/tooling.html" target="_parent"><strong aria-hidden="true">2.4.</strong> Tooling integration</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/std_json.html" target="_parent"><strong aria-hidden="true">2.5.</strong> Standard JSON interface</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/differences.html" target="_parent"><strong aria-hidden="true">2.6.</strong> Differences to EVM</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="user_guide/rust_libraries.html" target="_parent"><strong aria-hidden="true">2.7.</strong> Rust contract libraries</a></span></li></ol><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="revive_runner.html" target="_parent"><strong aria-hidden="true">3.</strong> revive-runner sandbox</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide.html" target="_parent"><strong aria-hidden="true">4.</strong> Developer Guide</a></span><ol class="section"><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/contributing.html" target="_parent"><strong aria-hidden="true">4.1.</strong> Contributor guide</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/architecture.html" target="_parent"><strong aria-hidden="true">4.2.</strong> Compiler architecture</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/newyork_optimizer.html" target="_parent"><strong aria-hidden="true">4.3.</strong> The newyork optimizer</a></span><ol class="section"><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/newyork_ir.html" target="_parent"><strong aria-hidden="true">4.3.1.</strong> IR reference</a></span></li></ol><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/target.html" target="_parent"><strong aria-hidden="true">4.4.</strong> PVM and the pallet-revive runtime target</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/testing.html" target="_parent"><strong aria-hidden="true">4.5.</strong> Testing strategy</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/coverage.html" target="_parent"><strong aria-hidden="true">4.6.</strong> Code coverage</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="developer_guide/cross_compilation.html" target="_parent"><strong aria-hidden="true">4.7.</strong> Cross compilation</a></span></li></ol><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="faq.html" target="_parent"><strong aria-hidden="true">5.</strong> FAQ</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="roadmap.html" target="_parent"><strong aria-hidden="true">6.</strong> Roadmap and Vision</a></span></li></ol>
</body>
</html>