mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 11:07:42 +00:00
implement check
step for compiletest
separately
Signed-off-by: onur-ozkan <work@onurozkan.dev>
This commit is contained in:
parent
c8306650ba
commit
cae28b5119
@ -369,6 +369,69 @@ impl Step for RustAnalyzer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Compiletest is implicitly "checked" when it gets built in order to run tests,
|
||||||
|
/// so this is mainly for people working on compiletest to run locally.
|
||||||
|
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||||
|
pub struct Compiletest {
|
||||||
|
pub target: TargetSelection,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Step for Compiletest {
|
||||||
|
type Output = ();
|
||||||
|
const ONLY_HOSTS: bool = true;
|
||||||
|
const DEFAULT: bool = false;
|
||||||
|
|
||||||
|
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
|
||||||
|
run.path("src/tools/compiletest")
|
||||||
|
}
|
||||||
|
|
||||||
|
fn make_run(run: RunConfig<'_>) {
|
||||||
|
run.builder.ensure(Compiletest { target: run.target });
|
||||||
|
}
|
||||||
|
|
||||||
|
fn run(self, builder: &Builder<'_>) {
|
||||||
|
let mode = if builder.config.compiletest_use_stage0_libtest {
|
||||||
|
Mode::ToolBootstrap
|
||||||
|
} else {
|
||||||
|
Mode::ToolStd
|
||||||
|
};
|
||||||
|
|
||||||
|
let compiler = builder.compiler(
|
||||||
|
if mode == Mode::ToolBootstrap { 0 } else { builder.top_stage },
|
||||||
|
builder.config.build,
|
||||||
|
);
|
||||||
|
|
||||||
|
if mode != Mode::ToolBootstrap {
|
||||||
|
builder.ensure(Rustc::new(self.target, builder));
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut cargo = prepare_tool_cargo(
|
||||||
|
builder,
|
||||||
|
compiler,
|
||||||
|
mode,
|
||||||
|
self.target,
|
||||||
|
builder.kind,
|
||||||
|
"src/tools/compiletest",
|
||||||
|
SourceType::InTree,
|
||||||
|
&[],
|
||||||
|
);
|
||||||
|
|
||||||
|
cargo.allow_features("test");
|
||||||
|
|
||||||
|
// For ./x.py clippy, don't run with --all-targets because
|
||||||
|
// linting tests and benchmarks can produce very noisy results
|
||||||
|
if builder.kind != Kind::Clippy {
|
||||||
|
cargo.arg("--all-targets");
|
||||||
|
}
|
||||||
|
|
||||||
|
let stamp = BuildStamp::new(&builder.cargo_out(compiler, mode, self.target))
|
||||||
|
.with_prefix("compiletest-check");
|
||||||
|
|
||||||
|
let _guard = builder.msg_check("compiletest artifacts", self.target);
|
||||||
|
run_cargo(builder, cargo, builder.config.free_args.clone(), &stamp, vec![], true, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
macro_rules! tool_check_step {
|
macro_rules! tool_check_step {
|
||||||
(
|
(
|
||||||
$name:ident {
|
$name:ident {
|
||||||
@ -464,7 +527,3 @@ tool_check_step!(Bootstrap { path: "src/bootstrap", default: false });
|
|||||||
// `run-make-support` will be built as part of suitable run-make compiletest test steps, but support
|
// `run-make-support` will be built as part of suitable run-make compiletest test steps, but support
|
||||||
// check to make it easier to work on.
|
// check to make it easier to work on.
|
||||||
tool_check_step!(RunMakeSupport { path: "src/tools/run-make-support", default: false });
|
tool_check_step!(RunMakeSupport { path: "src/tools/run-make-support", default: false });
|
||||||
|
|
||||||
// Compiletest is implicitly "checked" when it gets built in order to run tests,
|
|
||||||
// so this is mainly for people working on compiletest to run locally.
|
|
||||||
tool_check_step!(Compiletest { path: "src/tools/compiletest", default: false });
|
|
||||||
|
@ -2398,7 +2398,9 @@ pub fn run_cargo(
|
|||||||
// Ok now we need to actually find all the files listed in `toplevel`. We've
|
// Ok now we need to actually find all the files listed in `toplevel`. We've
|
||||||
// got a list of prefix/extensions and we basically just need to find the
|
// got a list of prefix/extensions and we basically just need to find the
|
||||||
// most recent file in the `deps` folder corresponding to each one.
|
// most recent file in the `deps` folder corresponding to each one.
|
||||||
let contents = t!(target_deps_dir.read_dir())
|
let contents = target_deps_dir
|
||||||
|
.read_dir()
|
||||||
|
.unwrap_or_else(|e| panic!("Couldn't read {}: {}", target_deps_dir.display(), e))
|
||||||
.map(|e| t!(e))
|
.map(|e| t!(e))
|
||||||
.map(|e| (e.path(), e.file_name().into_string().unwrap(), t!(e.metadata())))
|
.map(|e| (e.path(), e.file_name().into_string().unwrap(), t!(e.metadata())))
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
Loading…
Reference in New Issue
Block a user