Skip to content
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
5 changes: 4 additions & 1 deletion src/bootstrap/src/core/build_steps/setup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,10 @@ impl CommandLineStep for Profile {

fn should_run(mut run: ShouldRun<'_>) -> ShouldRun<'_> {
for choice in Profile::all() {
run = run.alias(choice.as_str());
// Some of the profile names happen to coincide with actual directory names
// ("compiler" and "library"), so avoid the usual assertion that aliases
// don't exist on disk.
run = run.alias_without_assert(choice.as_str());
}
run
}
Expand Down
7 changes: 5 additions & 2 deletions src/bootstrap/src/core/build_steps/tool.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1107,8 +1107,11 @@ impl CommandLineStep for RustAnalyzerProcMacroSrv {

fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
// Allow building `rust-analyzer-proc-macro-srv` both as part of the `rust-analyzer` and as a stand-alone tool.
run.path("src/tools/rust-analyzer")
.path("src/tools/rust-analyzer/crates/proc-macro-srv-cli")
// FIXME(Zalathar): Should we stop registering "src/tools/rust-analyzer" here?
run.path("src/tools/rust-analyzer").path_with_alias(
"src/tools/rust-analyzer/crates/proc-macro-srv-cli",
"rust-analyzer-proc-macro-srv",
)
}

fn is_default_step(builder: &Builder<'_>) -> bool {
Expand Down
64 changes: 1 addition & 63 deletions src/bootstrap/src/core/builder/cli_paths.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,63 +10,6 @@ use crate::core::builder::{Builder, CommandLineStepDescription, Kind, PathSet, S
#[cfg(test)]
mod tests;

pub(crate) const PATH_REMAP: &[(&str, &[&str])] = &[
// bootstrap.toml uses `rust-analyzer-proc-macro-srv`, but the
// actual path is `proc-macro-srv-cli`
("rust-analyzer-proc-macro-srv", &["src/tools/rust-analyzer/crates/proc-macro-srv-cli"]),
// Make `x test tests` function the same as `x t tests/*`
(
"tests",
&[
// tidy-alphabetical-start
"tests/assembly-llvm",
"tests/build-std",
"tests/codegen-llvm",
"tests/codegen-units",
"tests/coverage",
"tests/coverage-run-rustdoc",
"tests/crashes",
"tests/debuginfo",
"tests/incremental",
"tests/mir-opt",
"tests/pretty",
"tests/run-make",
"tests/run-make-cargo",
"tests/rustdoc-gui",
"tests/rustdoc-html",
"tests/rustdoc-js",
"tests/rustdoc-js-std",
"tests/rustdoc-json",
"tests/rustdoc-ui",
"tests/ui",
"tests/ui-fulldeps",
// tidy-alphabetical-end
],
),
];

pub(crate) fn remap_paths(paths: &mut Vec<PathBuf>) {
let mut remove = vec![];
let mut add = vec![];
for (i, path) in paths.iter().enumerate().filter_map(|(i, path)| path.to_str().map(|s| (i, s)))
{
for &(search, replace) in PATH_REMAP {
// Remove leading and trailing slashes so `tests/` and `tests` are equivalent
if path.trim_matches(std::path::is_separator) == search {
remove.push(i);
add.extend(replace.iter().map(PathBuf::from));
break;
}
}
}
remove.sort();
remove.dedup();
for idx in remove.into_iter().rev() {
paths.remove(idx);
}
paths.append(&mut add);
}

#[derive(Clone, PartialEq)]
pub(crate) struct CLIStepPath {
pub(crate) path: PathBuf,
Expand Down Expand Up @@ -106,10 +49,7 @@ pub(crate) fn match_paths_to_steps_and_run(
// paths to match it against.
let steps = step_descs
.iter()
.map(|desc| StepExtra {
desc,
should_run: (desc.should_run)(ShouldRun::new(builder, desc.kind)),
})
.map(|desc| StepExtra { desc, should_run: (desc.should_run)(ShouldRun::new(builder)) })
.collect::<Vec<_>>();

// FIXME(Zalathar): This particular check isn't related to path-to-step
Expand Down Expand Up @@ -168,8 +108,6 @@ pub(crate) fn match_paths_to_steps_and_run(
})
.collect();

remap_paths(&mut paths);

// Handle all test suite paths.
// (This is separate from the loop below to avoid having to handle multiple paths in `is_suite_path` somehow.)
paths.retain(|path| {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
source: src/bootstrap/src/core/builder/cli_paths/tests.rs
expression: build proc-macro-srv-cli
---
[Build] tool::RustAnalyzerProcMacroSrv
targets: [x86_64-unknown-linux-gnu]
- Set({rust-analyzer-proc-macro-srv, src/tools/rust-analyzer/crates/proc-macro-srv-cli})
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
source: src/bootstrap/src/core/builder/cli_paths/tests.rs
expression: build rust-analyzer
---
[Build] tool::RustAnalyzer
targets: [x86_64-unknown-linux-gnu]
- Set({src/tools/rust-analyzer})
[Build] tool::RustAnalyzerProcMacroSrv
targets: [x86_64-unknown-linux-gnu]
- Set({src/tools/rust-analyzer})
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
source: src/bootstrap/src/core/builder/cli_paths/tests.rs
expression: build rust-analyzer-proc-macro-srv
---
[Build] tool::RustAnalyzerProcMacroSrv
targets: [x86_64-unknown-linux-gnu]
- Set({rust-analyzer-proc-macro-srv, src/tools/rust-analyzer/crates/proc-macro-srv-cli})
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
source: src/bootstrap/src/core/builder/cli_paths/tests.rs
expression: build rust-analyzer-proc-macro-srv src/tools/rust-analyzer/crates/proc-macro-srv-cli
---
[Build] tool::RustAnalyzerProcMacroSrv
targets: [x86_64-unknown-linux-gnu]
- Set({rust-analyzer-proc-macro-srv, src/tools/rust-analyzer/crates/proc-macro-srv-cli})
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
source: src/bootstrap/src/core/builder/cli_paths/tests.rs
expression: build src/tools/rust-analyzer
---
[Build] tool::RustAnalyzer
targets: [x86_64-unknown-linux-gnu]
- Set({src/tools/rust-analyzer})
[Build] tool::RustAnalyzerProcMacroSrv
targets: [x86_64-unknown-linux-gnu]
- Set({rust-analyzer-proc-macro-srv, src/tools/rust-analyzer/crates/proc-macro-srv-cli})
- Set({src/tools/rust-analyzer})
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
source: src/bootstrap/src/core/builder/cli_paths/tests.rs
expression: build src/tools/rust-analyzer/crates/proc-macro-srv-cli
---
[Build] tool::RustAnalyzerProcMacroSrv
targets: [x86_64-unknown-linux-gnu]
- Set({rust-analyzer-proc-macro-srv, src/tools/rust-analyzer/crates/proc-macro-srv-cli})
Original file line number Diff line number Diff line change
Expand Up @@ -2,66 +2,69 @@
source: src/bootstrap/src/core/builder/cli_paths/tests.rs
expression: test tests
---
[Test] test::AssemblyLlvm
[Test] test::Ui
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/assembly-llvm)
[Test] test::BuildStd
- Suite(tests/ui)
[Test] test::Crashes
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/build-std)
- Suite(tests/crashes)
[Test] test::Coverage
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/coverage)
[Test] test::MirOpt
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/mir-opt)
[Test] test::CodegenLlvm
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/codegen-llvm)
[Test] test::CodegenUnits
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/codegen-units)
[Test] test::Coverage
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/coverage)
[Test] test::CoverageRunRustdoc
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/coverage-run-rustdoc)
[Test] test::Crashes
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/crashes)
[Test] test::Debuginfo
[Test] test::AssemblyLlvm
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/debuginfo)
- Suite(tests/assembly-llvm)
[Test] test::Incremental
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/incremental)
[Test] test::MirOpt
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/mir-opt)
[Test] test::Pretty
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/pretty)
[Test] test::RunMake
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/run-make)
[Test] test::RunMakeCargo
[Test] test::Debuginfo
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/run-make-cargo)
[Test] test::RustdocGUI
- Suite(tests/debuginfo)
[Test] test::UiFullDeps
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-gui)
- Suite(tests/ui-fulldeps)
[Test] test::RustdocHtml
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-html)
[Test] test::RustdocJSNotStd
[Test] test::CoverageRunRustdoc
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-js)
- Suite(tests/coverage-run-rustdoc)
[Test] test::Pretty
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/pretty)
[Test] test::Clippy
targets: [x86_64-unknown-linux-gnu]
- Suite(src/tools/clippy/tests)
[Test] test::RustdocJSStd
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-js-std)
[Test] test::RustdocJson
[Test] test::RustdocJSNotStd
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-json)
- Suite(tests/rustdoc-js)
[Test] test::RustdocGUI
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-gui)
[Test] test::RustdocUi
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-ui)
[Test] test::Ui
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/ui)
[Test] test::UiFullDeps
[Test] test::RustdocJson
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/ui-fulldeps)
- Suite(tests/rustdoc-json)
[Test] test::RunMake
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/run-make)
[Test] test::RunMakeCargo
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/run-make-cargo)
[Test] test::BuildStd
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/build-std)
Original file line number Diff line number Diff line change
Expand Up @@ -2,63 +2,66 @@
source: src/bootstrap/src/core/builder/cli_paths/tests.rs
expression: test tests --skip=coverage
---
[Test] test::AssemblyLlvm
[Test] test::Ui
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/assembly-llvm)
[Test] test::BuildStd
- Suite(tests/ui)
[Test] test::Crashes
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/build-std)
- Suite(tests/crashes)
[Test] test::MirOpt
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/mir-opt)
[Test] test::CodegenLlvm
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/codegen-llvm)
[Test] test::CodegenUnits
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/codegen-units)
[Test] test::CoverageRunRustdoc
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/coverage-run-rustdoc)
[Test] test::Crashes
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/crashes)
[Test] test::Debuginfo
[Test] test::AssemblyLlvm
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/debuginfo)
- Suite(tests/assembly-llvm)
[Test] test::Incremental
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/incremental)
[Test] test::MirOpt
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/mir-opt)
[Test] test::Pretty
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/pretty)
[Test] test::RunMake
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/run-make)
[Test] test::RunMakeCargo
[Test] test::Debuginfo
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/run-make-cargo)
[Test] test::RustdocGUI
- Suite(tests/debuginfo)
[Test] test::UiFullDeps
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-gui)
- Suite(tests/ui-fulldeps)
[Test] test::RustdocHtml
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-html)
[Test] test::RustdocJSNotStd
[Test] test::CoverageRunRustdoc
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-js)
- Suite(tests/coverage-run-rustdoc)
[Test] test::Pretty
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/pretty)
[Test] test::Clippy
targets: [x86_64-unknown-linux-gnu]
- Suite(src/tools/clippy/tests)
[Test] test::RustdocJSStd
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-js-std)
[Test] test::RustdocJson
[Test] test::RustdocJSNotStd
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-json)
- Suite(tests/rustdoc-js)
[Test] test::RustdocGUI
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-gui)
[Test] test::RustdocUi
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/rustdoc-ui)
[Test] test::Ui
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/ui)
[Test] test::UiFullDeps
[Test] test::RustdocJson
targets: [x86_64-unknown-linux-gnu]
- Suite(tests/ui-fulldeps)
- Suite(tests/rustdoc-json)
[Test] test::RunMake
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/run-make)
[Test] test::RunMakeCargo
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/run-make-cargo)
[Test] test::BuildStd
targets: [aarch64-unknown-linux-gnu]
- Suite(tests/build-std)
12 changes: 12 additions & 0 deletions src/bootstrap/src/core/builder/cli_paths/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,21 @@ declare_tests!(
(x_build_compiletest, "build compiletest"),
(x_build_library, "build library"),
(x_build_llvm, "build llvm"),
(x_build_proc_macro_srv_cli, "build proc-macro-srv-cli"),
(x_build_rust_analyzer, "build rust-analyzer"),
(x_build_rust_analyzer_proc_macro_srv, "build rust-analyzer-proc-macro-srv"),
(
x_build_rust_analyzer_proc_macro_srv_plus_full_path,
"build rust-analyzer-proc-macro-srv src/tools/rust-analyzer/crates/proc-macro-srv-cli"
),
(x_build_rustc, "build rustc"),
(x_build_rustc_llvm, "build rustc_llvm"),
(x_build_rustdoc, "build rustdoc"),
(x_build_src_tools_rust_analyzer, "build src/tools/rust-analyzer"),
(
x_build_src_tools_rust_analyzer_crates_proc_macro_srv_cli,
"build src/tools/rust-analyzer/crates/proc-macro-srv-cli"
),
(x_build_sysroot, "build sysroot"),
(x_check, "check"),
(x_check_bootstrap, "check bootstrap"),
Expand Down
Loading
Loading