Rollup merge of #115088 - LuuuXXX:issue-112009, r=albertlarsan68
Fix Step Skipping Caused by Using the `--exclude` Option
The original code was overreacting to the `--exclude` option,
eadf69a6c6/src/bootstrap/builder.rs (L257-L260)
For example:
When `x test --exclude alloc` or `x test --exclude library/alloc` is passed, the entire libraray test is skipped.
Related issues:
https://github.com/rust-lang/rust/issues/112009
This commit is contained in:
commit
dcb465995d
@ -302,8 +302,10 @@ fn from<S: Step>(kind: Kind) -> StepDescription {
|
||||
}
|
||||
}
|
||||
|
||||
fn maybe_run(&self, builder: &Builder<'_>, pathsets: Vec<PathSet>) {
|
||||
if pathsets.iter().any(|set| self.is_excluded(builder, set)) {
|
||||
fn maybe_run(&self, builder: &Builder<'_>, mut pathsets: Vec<PathSet>) {
|
||||
pathsets.retain(|set| !self.is_excluded(builder, set));
|
||||
|
||||
if pathsets.is_empty() {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -136,9 +136,9 @@ fn test_exclude_kind() {
|
||||
let mut config = configure("test", &["A"], &["A"]);
|
||||
// Ensure our test is valid, and `test::Rustc` would be run without the exclude.
|
||||
assert!(run_build(&[], config.clone()).contains::<test::CrateLibrustc>());
|
||||
// Ensure tests for rustc are skipped.
|
||||
// Ensure tests for rustc are not skipped.
|
||||
config.skip = vec![path.clone()];
|
||||
assert!(!run_build(&[], config.clone()).contains::<test::CrateLibrustc>());
|
||||
assert!(run_build(&[], config.clone()).contains::<test::CrateLibrustc>());
|
||||
// Ensure builds for rustc are not skipped.
|
||||
assert!(run_build(&[], config).contains::<compile::Rustc>());
|
||||
}
|
||||
|
@ -58,5 +58,6 @@ ENV NO_CHANGE_USER=1
|
||||
RUN chown 10719 -R /emsdk-portable/
|
||||
|
||||
# Exclude library/alloc due to OOM in benches.
|
||||
# FIXME: Fix std tests
|
||||
ENV SCRIPT python3 ../x.py test --stage 2 --host='' --target $TARGETS \
|
||||
--skip library/alloc
|
||||
--skip library/alloc --skip library/std
|
||||
|
Loading…
Reference in New Issue
Block a user