rust/tests/coverage
Zalathar ab786d3b98 coverage: Eliminate more counters by giving them to unreachable nodes
When preparing a function's coverage counters and metadata during codegen, any
part of the original coverage graph that was removed by MIR optimizations can
be treated as having an execution count of zero.

Somewhat counter-intuitively, if we give those unreachable nodes a _higher_
priority for receiving physical counters (instead of counter expressions), that
ends up reducing the total number of physical counters needed.

This works because if a node is unreachable, we don't actually create a
physical counter for it. Instead that node gets a fixed zero counter, and any
other node that would have relied on that physical counter in its counter
expression can just ignore that term completely.
2025-02-13 13:45:53 +11:00
..
attr Add a test for coverage attr on trait function 2024-12-24 00:09:38 +11:00
auxiliary Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
branch coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
condition Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
mcdc coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
abort.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
abort.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
abort.rs Remove c_unwind from tests and fix tests 2024-06-19 13:54:55 +01:00
assert_not.cov-map coverage: Eliminate more counters by giving them to unreachable nodes 2025-02-13 13:45:53 +11:00
assert_not.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
assert_not.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
assert-ne.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
assert-ne.coverage coverage: Add tests/coverage/assert-ne.rs 2024-06-12 22:38:16 +10:00
assert-ne.rs coverage: Add tests/coverage/assert-ne.rs 2024-06-12 22:38:16 +10:00
assert.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
assert.coverage coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
assert.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
async2.cov-map coverage: Eliminate more counters by giving them to unreachable nodes 2025-02-13 13:45:53 +11:00
async2.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
async2.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
async_block.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
async_block.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
async_block.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
async_closure.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
async_closure.coverage Stabilize async closures 2024-12-13 00:04:56 +00:00
async_closure.rs Stabilize async closures 2024-12-13 00:04:56 +00:00
async.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
async.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
async.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
await_ready.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
await_ready.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
await_ready.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
bad_counter_ids.cov-map coverage: Eliminate more counters by giving them to unreachable nodes 2025-02-13 13:45:53 +11:00
bad_counter_ids.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
bad_counter_ids.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
bench.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
bench.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
bench.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
closure_bug.cov-map coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
closure_bug.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
closure_bug.rs coverage: Add #[rustfmt::skip] to tests with non-standard formatting 2024-01-16 15:56:37 +11:00
closure_macro_async.cov-map Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
closure_macro_async.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
closure_macro_async.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
closure_macro.cov-map coverage: Prefer to visit nodes whose predecessors have been visited 2024-12-07 12:13:12 +11:00
closure_macro.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
closure_macro.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
closure_unit_return.cov-map Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
closure_unit_return.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
closure_unit_return.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
closure.cov-map comment out the old tests instead of adjusting them 2024-11-25 20:39:45 +01:00
closure.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
closure.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
color.coverage Simplify the directives for ignoring coverage-test modes 2024-10-08 22:51:53 +11:00
color.rs Simplify the directives for ignoring coverage-test modes 2024-10-08 22:51:53 +11:00
conditions.cov-map coverage: Eliminate more counters by giving them to unreachable nodes 2025-02-13 13:45:53 +11:00
conditions.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
conditions.rs coverage: Tweak individual tests to be unaffected by rustfmt 2024-01-16 16:14:27 +11:00
continue.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +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: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
coroutine.coverage Manually run x fmt on all source files in tests/coverage/ 2024-05-29 14:34:17 +10:00
coroutine.rs Manually run x fmt on all source files in tests/coverage/ 2024-05-29 14:34:17 +10:00
coverage_attr_closure.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
coverage_attr_closure.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
coverage_attr_closure.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
dead_code.cov-map coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
dead_code.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
dead_code.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
discard-all-issue-133606.coverage coverage: Add a synthetic test for when all spans are discarded 2024-12-19 22:03:43 +11:00
discard-all-issue-133606.rs coverage: Add a synthetic test for when all spans are discarded 2024-12-19 22:03:43 +11:00
drop_trait.cov-map coverage: Eliminate more counters by giving them to unreachable nodes 2025-02-13 13:45:53 +11:00
drop_trait.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
drop_trait.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
fn_sig_into_try.cov-map coverage: Don't create counters for code that was removed by MIR opts 2025-02-06 21:44:31 +11:00
fn_sig_into_try.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
fn_sig_into_try.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
generic-unused-impl.cov-map add comment to test 2025-01-09 13:55:50 +01:00
generic-unused-impl.coverage add comment to test 2025-01-09 13:55:50 +01:00
generic-unused-impl.rs add comment to test 2025-01-09 13:55:50 +01:00
generics.cov-map coverage: Eliminate more counters by giving them to unreachable nodes 2025-02-13 13:45:53 +11:00
generics.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
generics.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
holes.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
holes.coverage coverage: Extract hole spans from HIR instead of MIR 2024-07-08 21:22:56 +10:00
holes.rs coverage: Test for handling of nested item spans 2024-07-08 20:24:15 +10:00
if_else.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
if_else.coverage coverage: Add #[rustfmt::skip] to tests with non-standard formatting 2024-01-16 15:56:37 +11:00
if_else.rs coverage: Add #[rustfmt::skip] to tests with non-standard formatting 2024-01-16 15:56:37 +11:00
if_not.cov-map Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
if_not.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
if_not.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
if.cov-map coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
if.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
if.rs coverage: Add #[rustfmt::skip] to tests with non-standard formatting 2024-01-16 15:56:37 +11:00
ignore_map.coverage Simplify the directives for ignoring coverage-test modes 2024-10-08 22:51:53 +11:00
ignore_map.rs Simplify the directives for ignoring coverage-test modes 2024-10-08 22:51:53 +11:00
ignore_run.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
ignore_run.rs Simplify the directives for ignoring coverage-test modes 2024-10-08 22:51:53 +11:00
inline_mixed.rs coverage: Regression test for inlining into an uninstrumented crate 2024-11-02 23:20:14 +11:00
inline-dead.cov-map coverage: Don't create counters for code that was removed by MIR opts 2025-02-06 21:44:31 +11:00
inline-dead.coverage Tweak various coverage test files for slightly nicer formatting 2024-05-29 14:34:11 +10:00
inline-dead.rs Tweak various coverage test files for slightly nicer formatting 2024-05-29 14:34:11 +10:00
inline.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
inline.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
inline.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
inner_items.cov-map coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
inner_items.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
inner_items.rs Tweak various coverage test files for slightly nicer formatting 2024-05-29 14:34:11 +10:00
issue-83601.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
issue-83601.coverage coverage: Don't instrument #[automatically_derived] functions 2024-01-22 12:18:57 +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: Don't create counters for code that was removed by MIR opts 2025-02-06 21:44:31 +11:00
issue-84561.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
issue-84561.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
issue-85461.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
issue-85461.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
issue-85461.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
issue-93054.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
issue-93054.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
issue-93054.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
lazy_boolean.cov-map coverage: Add an extra "transcribe" step after counter creation 2024-12-04 17:50:52 +11:00
lazy_boolean.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
lazy_boolean.rs coverage: Add #[rustfmt::skip] to tests with non-standard formatting 2024-01-16 15:56:37 +11:00
let_else_loop.cov-map Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
let_else_loop.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
let_else_loop.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
long_and_wide.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
long_and_wide.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
long_and_wide.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
loop_break_value.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
loop_break_value.coverage coverage: Add #[rustfmt::skip] to tests with non-standard formatting 2024-01-16 15:56:37 +11:00
loop_break_value.rs coverage: Add #[rustfmt::skip] to tests with non-standard formatting 2024-01-16 15:56:37 +11:00
loop-break.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
loop-break.coverage coverage: Replace the old span refiner with a single function 2024-06-12 22:59:24 +10:00
loop-break.rs coverage: Add tests/coverage/loop-break.rs 2024-06-12 22:48:11 +10:00
loops_branches.cov-map coverage: Eliminate more counters by giving them to unreachable nodes 2025-02-13 13:45:53 +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_in_closure.cov-map Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
macro_in_closure.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
macro_in_closure.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
macro_name_span.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
macro_name_span.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
macro_name_span.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
match_or_pattern.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
match_or_pattern.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +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: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +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 Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
no_cov_crate.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
no_cov_crate.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
no_spans_if_not.cov-map coverage: Don't create counters for code that was removed by MIR opts 2025-02-06 21:44:31 +11:00
no_spans_if_not.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
no_spans_if_not.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
no_spans.cov-map Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
no_spans.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
no_spans.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
no-core.cov-map Coverage test for allowing coverage in a #![no_core] crate 2024-11-24 21:12:40 +11:00
no-core.coverage Coverage test for allowing coverage in a #![no_core] crate 2024-11-24 21:12:40 +11:00
no-core.rs Coverage test for allowing coverage in a #![no_core] crate 2024-11-24 21:12:40 +11:00
overflow.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
overflow.coverage coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
overflow.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
panic_unwind.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
panic_unwind.coverage coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
panic_unwind.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
partial_eq.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
partial_eq.coverage Manually run x fmt on all source files in tests/coverage/ 2024-05-29 14:34:17 +10:00
partial_eq.rs Manually run x fmt on all source files in tests/coverage/ 2024-05-29 14:34:17 +10: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: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
simple_loop.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
simple_loop.rs coverage: Add #[rustfmt::skip] to tests with non-standard formatting 2024-01-16 15:56:37 +11:00
simple_match.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
simple_match.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
simple_match.rs coverage: Add #[rustfmt::skip] to tests with non-standard formatting 2024-01-16 15:56:37 +11:00
sort_groups.cov-map coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
sort_groups.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
sort_groups.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
test_harness.cov-map coverage: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
test_harness.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
test_harness.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
tight_inf_loop.cov-map coverage: Don't create counters for code that was removed by MIR opts 2025-02-06 21:44:31 +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: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
trivial.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
trivial.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
try_error_result.cov-map coverage: Eliminate more counters by giving them to unreachable nodes 2025-02-13 13:45:53 +11:00
try_error_result.coverage Tweak various coverage test files for slightly nicer formatting 2024-05-29 14:34:11 +10:00
try_error_result.rs Tweak various coverage test files for slightly nicer formatting 2024-05-29 14:34:11 +10:00
unicode.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
unicode.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
unicode.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
unreachable.cov-map Stabilize #[coverage] attribute 2024-12-16 21:07:06 -05:00
unreachable.coverage Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
unreachable.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11:00
unused_mod.cov-map coverage: Build the global file table on the fly 2024-12-17 13:55: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: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +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: Include the highest counter ID seen in .cov-map dumps 2024-10-11 21:04:37 +11:00
uses_crate.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
uses_crate.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
uses_inline_crate.cov-map coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
uses_inline_crate.coverage coverage: Restrict empty-span expansion to only cover { and } 2024-11-08 20:43:08 +11:00
uses_inline_crate.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
while_early_ret.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
while_early_ret.coverage [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
while_early_ret.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
while.cov-map coverage: Eliminate more counters by giving them to unreachable nodes 2025-02-13 13:45:53 +11:00
while.coverage coverage: Tweak individual tests to be unaffected by rustfmt 2024-01-16 16:14:27 +11:00
while.rs coverage: Tweak individual tests to be unaffected by rustfmt 2024-01-16 16:14:27 +11:00
yield.cov-map coverage: Completely overhaul counter assignment, using node-flow graphs 2025-01-16 22:07:18 +11:00
yield.coverage Manually run x fmt on all source files in tests/coverage/ 2024-05-29 14:34:17 +10:00
yield.rs Manually run x fmt on all source files in tests/coverage/ 2024-05-29 14:34:17 +10: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.