coverage: Regression test for inlining into an uninstrumented crate

This commit is contained in:
Zalathar 2024-11-01 12:47:53 +11:00
parent b5f4883a06
commit afe190204b
2 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1,13 @@
//@ edition: 2021
//@ compile-flags: -Cinstrument-coverage=on
#[inline]
pub fn inline_me() {}
#[inline(never)]
pub fn no_inlining_please() {}
pub fn generic<T>() {}
// FIXME(#132436): Even though this doesn't ICE, it still produces coverage
// reports that undercount the affected code.

View File

@ -0,0 +1,19 @@
//@ edition: 2021
//@ compile-flags: -Cinstrument-coverage=off
//@ ignore-coverage-run
//@ aux-crate: inline_mixed_helper=inline_mixed_helper.rs
// Regression test for <https://github.com/rust-lang/rust/pull/132395>.
// Various forms of cross-crate inlining can cause coverage statements to be
// inlined into crates that are being built without coverage instrumentation.
// At the very least, we need to not ICE when that happens.
fn main() {
inline_mixed_helper::inline_me();
inline_mixed_helper::no_inlining_please();
inline_mixed_helper::generic::<u32>();
}
// FIXME(#132437): We currently don't test this in coverage-run mode, because
// whether or not it produces a `.profraw` file appears to differ between
// platforms.