Auto merge of #131429 - Zalathar:needs-profiler-runtime, r=jieyouxu
Rename directive `needs-profiler-support` to `needs-profiler-runtime` The rest of the compiler mostly refers to this as `profiler_runtime`, so having a directive named `needs-profiler-support` was causing a lot of confusion. r? jieyouxu
This commit is contained in:
commit
a1eceec00b
19 changed files with 35 additions and 37 deletions
|
@ -2082,7 +2082,7 @@ NOTE: if you're sure you want to do this, please open an issue as to why. In the
|
|||
}
|
||||
|
||||
if builder.config.profiler_enabled(target) {
|
||||
cmd.arg("--profiler-support");
|
||||
cmd.arg("--profiler-runtime");
|
||||
}
|
||||
|
||||
cmd.env("RUST_TEST_TMPDIR", builder.tempdir());
|
||||
|
|
|
@ -129,7 +129,7 @@ const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
|
|||
"needs-git-hash",
|
||||
"needs-llvm-components",
|
||||
"needs-llvm-zstd",
|
||||
"needs-profiler-support",
|
||||
"needs-profiler-runtime",
|
||||
"needs-relocation-model-pic",
|
||||
"needs-run-enabled",
|
||||
"needs-rust-lld",
|
||||
|
|
|
@ -385,8 +385,8 @@ pub struct Config {
|
|||
pub git_merge_commit_email: String,
|
||||
|
||||
/// True if the profiler runtime is enabled for this target.
|
||||
/// Used by the "needs-profiler-support" header in test files.
|
||||
pub profiler_support: bool,
|
||||
/// Used by the "needs-profiler-runtime" directive in test files.
|
||||
pub profiler_runtime: bool,
|
||||
}
|
||||
|
||||
impl Config {
|
||||
|
|
|
@ -851,7 +851,7 @@ fn iter_header(
|
|||
// FIXME(jieyouxu): I feel like there's a better way to do this, leaving for later.
|
||||
if mode == Mode::CoverageRun {
|
||||
let extra_directives: &[&str] = &[
|
||||
"needs-profiler-support",
|
||||
"needs-profiler-runtime",
|
||||
// FIXME(pietroalbini): this test currently does not work on cross-compiled targets
|
||||
// because remote-test is not capable of sending back the *.profraw files generated by
|
||||
// the LLVM instrumentation.
|
||||
|
|
|
@ -100,9 +100,9 @@ pub(super) fn handle_needs(
|
|||
ignore_reason: "ignored on targets without unwinding support",
|
||||
},
|
||||
Need {
|
||||
name: "needs-profiler-support",
|
||||
condition: cache.profiler_support,
|
||||
ignore_reason: "ignored when profiler support is disabled",
|
||||
name: "needs-profiler-runtime",
|
||||
condition: config.profiler_runtime,
|
||||
ignore_reason: "ignored when the profiler runtime is not available",
|
||||
},
|
||||
Need {
|
||||
name: "needs-force-clang-based-tests",
|
||||
|
@ -220,7 +220,6 @@ pub(super) struct CachedNeedsConditions {
|
|||
sanitizer_memtag: bool,
|
||||
sanitizer_shadow_call_stack: bool,
|
||||
sanitizer_safestack: bool,
|
||||
profiler_support: bool,
|
||||
xray: bool,
|
||||
rust_lld: bool,
|
||||
dlltool: bool,
|
||||
|
@ -247,7 +246,6 @@ impl CachedNeedsConditions {
|
|||
sanitizer_memtag: sanitizers.contains(&Sanitizer::Memtag),
|
||||
sanitizer_shadow_call_stack: sanitizers.contains(&Sanitizer::ShadowCallStack),
|
||||
sanitizer_safestack: sanitizers.contains(&Sanitizer::Safestack),
|
||||
profiler_support: config.profiler_support,
|
||||
xray: config.target_cfg().xray,
|
||||
|
||||
// For tests using the `needs-rust-lld` directive (e.g. for `-Clink-self-contained=+linker`),
|
||||
|
|
|
@ -69,7 +69,7 @@ struct ConfigBuilder {
|
|||
llvm_version: Option<String>,
|
||||
git_hash: bool,
|
||||
system_llvm: bool,
|
||||
profiler_support: bool,
|
||||
profiler_runtime: bool,
|
||||
}
|
||||
|
||||
impl ConfigBuilder {
|
||||
|
@ -113,8 +113,8 @@ impl ConfigBuilder {
|
|||
self
|
||||
}
|
||||
|
||||
fn profiler_support(&mut self, s: bool) -> &mut Self {
|
||||
self.profiler_support = s;
|
||||
fn profiler_runtime(&mut self, is_available: bool) -> &mut Self {
|
||||
self.profiler_runtime = is_available;
|
||||
self
|
||||
}
|
||||
|
||||
|
@ -162,8 +162,8 @@ impl ConfigBuilder {
|
|||
if self.system_llvm {
|
||||
args.push("--system-llvm".to_owned());
|
||||
}
|
||||
if self.profiler_support {
|
||||
args.push("--profiler-support".to_owned());
|
||||
if self.profiler_runtime {
|
||||
args.push("--profiler-runtime".to_owned());
|
||||
}
|
||||
|
||||
args.push("--rustc-path".to_string());
|
||||
|
@ -368,12 +368,12 @@ fn sanitizers() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn profiler_support() {
|
||||
let config: Config = cfg().profiler_support(false).build();
|
||||
assert!(check_ignore(&config, "//@ needs-profiler-support"));
|
||||
fn profiler_runtime() {
|
||||
let config: Config = cfg().profiler_runtime(false).build();
|
||||
assert!(check_ignore(&config, "//@ needs-profiler-runtime"));
|
||||
|
||||
let config: Config = cfg().profiler_support(true).build();
|
||||
assert!(!check_ignore(&config, "//@ needs-profiler-support"));
|
||||
let config: Config = cfg().profiler_runtime(true).build();
|
||||
assert!(!check_ignore(&config, "//@ needs-profiler-runtime"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -573,12 +573,12 @@ fn families() {
|
|||
|
||||
#[test]
|
||||
fn ignore_coverage() {
|
||||
// Indicate profiler support so that "coverage-run" tests aren't skipped.
|
||||
let config = cfg().mode("coverage-map").profiler_support(true).build();
|
||||
// Indicate profiler runtime availability so that "coverage-run" tests aren't skipped.
|
||||
let config = cfg().mode("coverage-map").profiler_runtime(true).build();
|
||||
assert!(check_ignore(&config, "//@ ignore-coverage-map"));
|
||||
assert!(!check_ignore(&config, "//@ ignore-coverage-run"));
|
||||
|
||||
let config = cfg().mode("coverage-run").profiler_support(true).build();
|
||||
let config = cfg().mode("coverage-run").profiler_runtime(true).build();
|
||||
assert!(!check_ignore(&config, "//@ ignore-coverage-map"));
|
||||
assert!(check_ignore(&config, "//@ ignore-coverage-run"));
|
||||
}
|
||||
|
|
|
@ -153,7 +153,7 @@ pub fn parse_config(args: Vec<String>) -> Config {
|
|||
.optflag("", "force-rerun", "rerun tests even if the inputs are unchanged")
|
||||
.optflag("", "only-modified", "only run tests that result been modified")
|
||||
.optflag("", "nocapture", "")
|
||||
.optflag("", "profiler-support", "is the profiler runtime enabled for this target")
|
||||
.optflag("", "profiler-runtime", "is the profiler runtime enabled for this target")
|
||||
.optflag("h", "help", "show this message")
|
||||
.reqopt("", "channel", "current Rust channel", "CHANNEL")
|
||||
.optflag(
|
||||
|
@ -355,7 +355,7 @@ pub fn parse_config(args: Vec<String>) -> Config {
|
|||
nightly_branch: matches.opt_str("nightly-branch").unwrap(),
|
||||
git_merge_commit_email: matches.opt_str("git-merge-commit-email").unwrap(),
|
||||
|
||||
profiler_support: matches.opt_present("profiler-support"),
|
||||
profiler_runtime: matches.opt_present("profiler-runtime"),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ fn main() {
|
|||
eprintln!("warning: `tidy` is not installed; diffs will not be generated");
|
||||
}
|
||||
|
||||
if !config.profiler_support && config.mode == Mode::CoverageRun {
|
||||
if !config.profiler_runtime && config.mode == Mode::CoverageRun {
|
||||
let actioned = if config.bless { "blessed" } else { "checked" };
|
||||
eprintln!(
|
||||
r#"
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
// RUSTBUILD_FORCE_CLANG_BASED_TESTS and only runs tests which contain "clang" in their
|
||||
// name.
|
||||
|
||||
//@ needs-profiler-support
|
||||
//@ needs-profiler-runtime
|
||||
// FIXME(Oneirical): Except that due to the reliance on llvm-profdata, this test
|
||||
// never runs, because `x86_64-gnu-debug` does not have the `profiler_builtins` crate.
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
// the output remark files.
|
||||
// See https://github.com/rust-lang/rust/pull/114439
|
||||
|
||||
//@ needs-profiler-support
|
||||
//@ needs-profiler-runtime
|
||||
//@ ignore-cross-compile
|
||||
|
||||
use run_make_support::{
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
// If the test passes, the expected function call count was added to the use-phase LLVM-IR.
|
||||
// See https://github.com/rust-lang/rust/pull/66631
|
||||
|
||||
//@ needs-profiler-support
|
||||
//@ needs-profiler-runtime
|
||||
//@ ignore-cross-compile
|
||||
|
||||
use std::path::Path;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// should be generated.
|
||||
// See https://github.com/rust-lang/rust/pull/48346
|
||||
|
||||
//@ needs-profiler-support
|
||||
//@ needs-profiler-runtime
|
||||
// Reason: this exercises LTO profiling
|
||||
//@ ignore-cross-compile
|
||||
// Reason: the compiled binary is executed
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// optimizes code. This test checks that these files are generated.
|
||||
// See https://github.com/rust-lang/rust/pull/48346
|
||||
|
||||
//@ needs-profiler-support
|
||||
//@ needs-profiler-runtime
|
||||
//@ ignore-cross-compile
|
||||
|
||||
use run_make_support::{cwd, has_extension, has_prefix, run, rustc, shallow_find_files};
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
// whether it can make a direct call instead of the indirect call.
|
||||
// See https://github.com/rust-lang/rust/pull/66631
|
||||
|
||||
//@ needs-profiler-support
|
||||
//@ needs-profiler-runtime
|
||||
// Reason: llvm_profdata is used
|
||||
//@ ignore-cross-compile
|
||||
// Reason: the compiled binary is executed
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
// be marked as cold.
|
||||
// See https://github.com/rust-lang/rust/pull/60262
|
||||
|
||||
//@ needs-profiler-support
|
||||
//@ needs-profiler-runtime
|
||||
//@ ignore-cross-compile
|
||||
|
||||
use run_make_support::{
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
// See https://github.com/rust-lang/rust/pull/42433
|
||||
|
||||
//@ ignore-cross-compile
|
||||
//@ needs-profiler-support
|
||||
//@ needs-profiler-runtime
|
||||
|
||||
use run_make_support::{path, run, rustc};
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
//@ ignore-cross-compile
|
||||
// Reason: the binary is executed
|
||||
//@ needs-profiler-support
|
||||
//@ needs-profiler-runtime
|
||||
|
||||
use run_make_support::{llvm_profdata, rfs, run, rustc};
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#![cfg_attr(feat, feature(coverage_attribute))]
|
||||
//@ revisions: feat nofeat
|
||||
//@ compile-flags: -Cinstrument-coverage
|
||||
//@ needs-profiler-support
|
||||
//@ needs-profiler-runtime
|
||||
|
||||
// Malformed `#[coverage(..)]` attributes should not cause an ICE when built
|
||||
// with `-Cinstrument-coverage`.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
//@ compile-flags: -Cinstrument-coverage -Ccodegen-units=4 --crate-type dylib -Copt-level=0
|
||||
//@ build-pass
|
||||
//@ needs-profiler-support
|
||||
//@ needs-profiler-runtime
|
||||
//@ needs-dynamic-linking
|
||||
|
||||
// Regression test for #85461 where MSVC sometimes fails to link instrument-coverage binaries
|
||||
|
|
Loading…
Add table
Reference in a new issue