rust/tests/coverage-map
Zalathar 6da319f635 coverage: Store all of a function's mappings in function coverage info
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.
2023-10-18 23:42:39 +11:00
..
status-quo coverage: Store all of a function's mappings in function coverage info 2023-10-18 23:42:39 +11:00
if.cov-map Add test suite coverage-map to test coverage mappings emitted by LLVM 2023-09-05 11:55:17 +10:00
if.rs Add test suite coverage-map to test coverage mappings emitted by LLVM 2023-09-05 11:55:17 +10:00
long_and_wide.cov-map Add test suite coverage-map to test coverage mappings emitted by LLVM 2023-09-05 11:55:17 +10:00
long_and_wide.rs Add test suite coverage-map to test coverage mappings emitted by LLVM 2023-09-05 11:55:17 +10:00
README.md Copy most of tests/run-coverage into tests/coverage-map/status-quo 2023-09-05 11:55:34 +10:00
trivial.cov-map Add test suite coverage-map to test coverage mappings emitted by LLVM 2023-09-05 11:55:17 +10:00
trivial.rs Add test suite coverage-map to test coverage mappings emitted by LLVM 2023-09-05 11:55:17 +10:00
unreachable.cov-map coverage: Regression test for functions with unreachable bodies 2023-10-01 14:44:27 +11:00
unreachable.rs coverage: Regression test for functions with unreachable bodies 2023-10-01 14:44:27 +11:00

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.