rust/tests/coverage
Zalathar a1e2c10b1f coverage: Simplify building coverage expressions based on sums
In some cases we need to prepare a coverage expression that is the sum of an
arbitrary number of other terms. This patch simplifies the code paths that
build those sums.

This causes some churn in the mappings, because the previous code was building
its sums in a somewhat idiosyncratic order.
2023-11-25 12:29:20 +11:00
..
auxiliary coverage: Regression test for #117788 2023-11-13 12:31:44 +11:00
abort.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
abort.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
abort.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
assert.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
assert.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
assert.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
async2.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
async2.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
async2.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
async.cov-map coverage: Simplify building coverage expressions based on sums 2023-11-25 12:29:20 +11:00
async.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
async.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
bad_counter_ids.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
bad_counter_ids.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
bad_counter_ids.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
closure_bug.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
closure_bug.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
closure_bug.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
closure_macro_async.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
closure_macro_async.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
closure_macro_async.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
closure_macro.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
closure_macro.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
closure_macro.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
closure.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
closure.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
closure.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
conditions.cov-map coverage: Simplify building coverage expressions based on sums 2023-11-25 12:29:20 +11:00
conditions.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
conditions.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
continue.cov-map coverage: Simplify building coverage expressions based on sums 2023-11-25 12:29:20 +11:00
continue.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
continue.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
coroutine.cov-map coverage: Simplify building coverage expressions based on sums 2023-11-25 12:29:20 +11:00
coroutine.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
coroutine.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
dead_code.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
dead_code.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
dead_code.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
drop_trait.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
drop_trait.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
drop_trait.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
fn_sig_into_try.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
fn_sig_into_try.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
fn_sig_into_try.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
generics.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
generics.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
generics.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
if_else.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
if_else.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
if_else.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
if.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
if.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
if.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
inline-dead.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
inline-dead.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
inline-dead.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
inline.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
inline.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
inline.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
inner_items.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
inner_items.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
inner_items.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
issue-83601.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
issue-83601.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
issue-83601.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
issue-84561.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
issue-84561.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
issue-84561.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
issue-85461.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
issue-85461.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
issue-85461.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
issue-93054.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
issue-93054.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
issue-93054.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
lazy_boolean.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
lazy_boolean.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
lazy_boolean.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
long_and_wide.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
long_and_wide.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
long_and_wide.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
loop_break_value.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
loop_break_value.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
loop_break_value.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
loops_branches.cov-map coverage: Simplify building coverage expressions based on sums 2023-11-25 12:29:20 +11:00
loops_branches.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
loops_branches.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
macro_name_span.cov-map coverage: Regression test for #117788 2023-11-13 12:31:44 +11:00
macro_name_span.coverage coverage: Regression test for #117788 2023-11-13 12:31:44 +11:00
macro_name_span.rs coverage: Regression test for #117788 2023-11-13 12:31:44 +11:00
match_or_pattern.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
match_or_pattern.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
match_or_pattern.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
nested_loops.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
nested_loops.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
nested_loops.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
no_cov_crate.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
no_cov_crate.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
no_cov_crate.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
overflow.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
overflow.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
overflow.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
panic_unwind.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
panic_unwind.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
panic_unwind.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
partial_eq.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
partial_eq.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
partial_eq.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
README.md coverage: Rename the run-coverage test mode to coverage-run 2023-11-08 16:41:24 +11:00
simple_loop.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
simple_loop.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
simple_loop.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
simple_match.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
simple_match.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
simple_match.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
sort_groups.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
sort_groups.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
sort_groups.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
test_harness.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
test_harness.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
test_harness.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
tight_inf_loop.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
tight_inf_loop.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
tight_inf_loop.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
trivial.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
trivial.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
trivial.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
try_error_result.cov-map coverage: Simplify building coverage expressions based on sums 2023-11-25 12:29:20 +11:00
try_error_result.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
try_error_result.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
unreachable.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
unreachable.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
unreachable.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
unused_mod.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
unused_mod.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
unused_mod.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
unused.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
unused.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
unused.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
uses_crate.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
uses_crate.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
uses_crate.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
uses_inline_crate.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
uses_inline_crate.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
uses_inline_crate.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
while_early_ret.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
while_early_ret.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
while_early_ret.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
while.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
while.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
while.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
yield.cov-map coverage: Migrate tests/coverage-map into tests/coverage 2023-11-07 11:15:19 +11:00
yield.coverage coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
yield.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00

The tests in this directory are shared by two different test modes, and can be run in multiple different ways:

  • ./x.py test coverage-map (compiles to LLVM IR and checks coverage mappings)
  • ./x.py test coverage-run (runs a test binary and checks its coverage report)
  • ./x.py test coverage (runs both coverage-map and coverage-run)

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 tests still pass in coverage-run mode, then it should usually be OK to just re-bless the mappings as necessary with ./x.py test coverage-map --bless, without worrying too much about the exact changes.