rust/tests/coverage
bors c0bb3b98bb Auto merge of #143290 - azhogin:azhogin/link-pub-async-impls, r=oli-obk
pub async fn impl is monomorphized when func itself is monomorphized

Implentation coroutine (`func::{closure#0}`) is monomorphized, when func itself is monomorphized.

Currently, when `pub async fn foo(..)` is exported from lib and used in several dependent crates, only 'header' function is monomorphized in the defining crate. 'header' function, returning coroutine object, is monomorphized, but the coroutine's poll function (which actually implements all the logic for the function) is not. In such situation, `func::{closure#0}` will be monomorphized in every dependency.

This PR adds monomorphization for `func::{closure#0}` (coroutine poll function), when func itself is monomorphized.

Simple test with one lib async function and ten dependent crates (executable) that use the function, shows 5-7% compilation time improvement (single-threaded).
2025-09-01 10:54:40 +00:00
..
attr coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
auxiliary coverage: Regression test for "function name is empty" bug 2025-07-29 11:36:43 +10:00
branch coverage: Remove -Zcoverage-options=no-mir-spans 2025-08-04 13:48:40 +10:00
condition coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
abort.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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-ne.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
assert-ne.coverage coverage: Tweak tests/coverage/assert-ne.rs 2025-04-01 13:07:33 +11:00
assert-ne.rs coverage: Tweak tests/coverage/assert-ne.rs 2025-04-01 13:07:33 +11:00
assert.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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
assert_not.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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
async.cov-map pub async fn implementation coroutine (func::{closure#0}) is monomorphized, when func itself is monomorphized 2025-09-01 13:45:00 +07:00
async.coverage pub async fn implementation coroutine (func::{closure#0}) is monomorphized, when func itself is monomorphized 2025-09-01 13:45:00 +07:00
async.rs pub async fn implementation coroutine (func::{closure#0}) is monomorphized, when func itself is monomorphized 2025-09-01 13:45:00 +07:00
async2.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
async2.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
async_block.coverage coverage: Instead of splitting, just discard any span that overlaps a hole 2025-04-01 13:13:20 +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: Re-land "Enlarge empty spans during MIR instrumentation" 2025-07-30 13:17:05 +10:00
async_closure.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
async_closure.rs Stabilize async closures 2024-12-13 00:04:56 +00:00
auto-derived.auto.cov-map coverage: Treat #[automatically_derived] as #[coverage(off)] 2025-07-29 19:56:31 +10:00
auto-derived.auto.coverage coverage: Treat #[automatically_derived] as #[coverage(off)] 2025-07-29 19:56:31 +10:00
auto-derived.base.cov-map coverage: Test how #[automatically_derived] affects instrumentation 2025-07-29 19:55:54 +10:00
auto-derived.base.coverage coverage: Test how #[automatically_derived] affects instrumentation 2025-07-29 19:55:54 +10:00
auto-derived.on.cov-map coverage: Treat #[automatically_derived] as #[coverage(off)] 2025-07-29 19:56:31 +10:00
auto-derived.on.coverage coverage: Treat #[automatically_derived] as #[coverage(off)] 2025-07-29 19:56:31 +10:00
auto-derived.rs coverage: Test how #[automatically_derived] affects instrumentation 2025-07-29 19:55:54 +10:00
await_ready.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
await_ready.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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.cov-map coverage: Build an "expansion tree" and use it to unexpand raw spans 2025-08-24 20:29:34 +10:00
closure.coverage coverage: Build an "expansion tree" and use it to unexpand raw spans 2025-08-24 20:29:34 +10:00
closure.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
closure_bug.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
closure_bug.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
closure_bug.rs coverage: Add #[rustfmt::skip] to tests with non-standard formatting 2024-01-16 15:56:37 +11:00
closure_macro.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
closure_macro.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
closure_macro.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
closure_macro_async.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
closure_macro_async.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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_unit_return.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
closure_unit_return.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
closure_unit_return.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30:37 +11: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
continue.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
continue.rs coverage: Migrate tests/run-coverage into tests/coverage 2023-11-07 11:15:19 +11:00
coroutine.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
dead_code.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
drop_trait.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
fn_sig_into_try.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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 coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
generics.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
holes.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
holes.rs coverage: Add some more cases to tests/coverage/holes.rs 2025-02-19 13:56:20 +11:00
if.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
if.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
if.rs coverage: Add #[rustfmt::skip] to tests with non-standard formatting 2024-01-16 15:56:37 +11:00
if_else.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
if_else.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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 coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
if_not.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
if_not.rs Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser" 2024-12-23 12:30: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
ignore_run.rs Simplify the directives for ignoring coverage-test modes 2024-10-08 22:51:53 +11:00
inline-dead.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
inline-dead.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
inline.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
inline.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
inline_mixed.rs coverage: Regression test for inlining into an uninstrumented crate 2024-11-02 23:20:14 +11:00
inner_items.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
inner_items.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
issue-84561.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
lazy_boolean.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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 coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
long_and_wide.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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
loop_break_value.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
loop_break_value.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
loop_break_value.rs coverage: Add #[rustfmt::skip] to tests with non-standard formatting 2024-01-16 15:56:37 +11:00
loops_branches.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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 coverage: Build an "expansion tree" and use it to unexpand raw spans 2025-08-24 20:29:34 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
match_or_pattern.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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-core.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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
no_cov_crate.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
no_cov_crate.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
no_spans.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
no_spans.rs coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
no_spans_if_not.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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
overflow.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
partial_eq.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +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
rustfmt-skip.cov-map coverage: Add a specific test for #[rustfmt::skip] 2025-08-24 20:29:34 +10:00
rustfmt-skip.coverage coverage: Add a specific test for #[rustfmt::skip] 2025-08-24 20:29:34 +10:00
rustfmt-skip.rs coverage: Add a specific test for #[rustfmt::skip] 2025-08-24 20:29:34 +10:00
simple_loop.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
simple_loop.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
simple_match.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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-in-macro.attr.cov-map coverage: Re-land "Enlarge empty spans during MIR instrumentation" 2025-07-30 13:17:05 +10:00
try-in-macro.attr.coverage coverage: Regression test for "function name is empty" bug 2025-07-29 11:36:43 +10:00
try-in-macro.bang.cov-map coverage: Re-land "Enlarge empty spans during MIR instrumentation" 2025-07-30 13:17:05 +10:00
try-in-macro.bang.coverage coverage: Regression test for "function name is empty" bug 2025-07-29 11:36:43 +10:00
try-in-macro.derive.cov-map coverage: Re-land "Enlarge empty spans during MIR instrumentation" 2025-07-30 13:17:05 +10:00
try-in-macro.derive.coverage coverage: Regression test for "function name is empty" bug 2025-07-29 11:36:43 +10:00
try-in-macro.rs coverage: Regression test for "function name is empty" bug 2025-07-29 11:36:43 +10:00
try_error_result.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
try_error_result.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
unicode.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
unicode.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
unreachable.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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
unused_mod.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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
uses_crate.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
uses_crate.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
uses_inline_crate.coverage coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10:00
uses_inline_crate.rs [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
while.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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
while_early_ret.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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
yield.cov-map coverage: Only merge adjacent coverage spans 2025-05-06 20:42:25 +10: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.