Skip to content

Rename directive needs-profiler-support to needs-profiler-runtime #131429

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Oct 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/bootstrap/src/core/build_steps/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand Down
2 changes: 1 addition & 1 deletion src/tools/compiletest/src/command-list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
4 changes: 2 additions & 2 deletions src/tools/compiletest/src/common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
2 changes: 1 addition & 1 deletion src/tools/compiletest/src/header.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
8 changes: 3 additions & 5 deletions src/tools/compiletest/src/header/needs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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,
Expand All @@ -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`),
Expand Down
26 changes: 13 additions & 13 deletions src/tools/compiletest/src/header/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ struct ConfigBuilder {
llvm_version: Option<String>,
git_hash: bool,
system_llvm: bool,
profiler_support: bool,
profiler_runtime: bool,
}

impl ConfigBuilder {
Expand Down Expand Up @@ -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
}

Expand Down Expand Up @@ -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());
Expand Down Expand Up @@ -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]
Expand Down Expand Up @@ -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"));
}
Expand Down
4 changes: 2 additions & 2 deletions src/tools/compiletest/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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"),
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/tools/compiletest/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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#"
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/cross-lang-lto-pgo-smoketest-clang/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/optimization-remarks-dir-pgo/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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::{
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/pgo-branch-weights/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/pgo-gen-lto/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/pgo-gen/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/pgo-indirect-call-promotion/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/pgo-use/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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::{
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/profile/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};

Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/track-pgo-dep-info/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};

Expand Down
2 changes: 1 addition & 1 deletion tests/ui/coverage-attr/bad-attr-ice.rs
Original file line number Diff line number Diff line change
@@ -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`.
Expand Down
2 changes: 1 addition & 1 deletion tests/ui/issues/issue-85461.rs
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Loading