mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-03 12:13:43 +00:00
6da319f635
Previously, mappings were attached to individual coverage statements in MIR. That necessitated special handling in MIR optimizations to avoid deleting those statements, since otherwise codegen would be unable to reassemble the original list of mappings. With this change, a function's list of mappings is now attached to its MIR body, and survives intact even if individual statements are deleted by optimizations. |
||
---|---|---|
.. | ||
status-quo | ||
if.cov-map | ||
if.rs | ||
long_and_wide.cov-map | ||
long_and_wide.rs | ||
README.md | ||
trivial.cov-map | ||
trivial.rs | ||
unreachable.cov-map | ||
unreachable.rs |
The tests in ./status-quo
were copied from tests/run-coverage
in order to
capture the current behavior of the instrumentor on non-trivial programs.
The actual mappings have not been closely inspected.
Maintenance note
These tests can be sensitive to small changes in MIR spans or MIR control flow, especially in HIR-to-MIR lowering or MIR optimizations.
If you haven't touched the coverage code directly, and the run-coverage
test
suite still works, then it should usually be OK to just --bless
these
coverage mapping tests as necessary, without worrying too much about the exact
changes.