rust/tests/coverage-map
Zalathar 4690f97099 coverage: Fix an unstable-sort inconsistency in coverage spans
This code was calling `sort_unstable_by`, but failed to impose a total order on
the initial spans. That resulted in unpredictable handling of closure spans,
producing inconsistencies in the coverage maps and in user-visible coverage
reports.

This patch fixes the problem by always sorting closure spans before
otherwise-identical non-closure spans, and also switches to a stable sort in
case the ordering is still not total.
2023-09-18 21:28:56 +10:00
..
status-quo coverage: Fix an unstable-sort inconsistency in coverage spans 2023-09-18 21:28:56 +10:00
if.cov-map
if.rs
long_and_wide.cov-map
long_and_wide.rs
README.md
trivial.cov-map
trivial.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.