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:
Guillaume Gomez 2023-09-08 14:10:50 +02:00 committed by GitHub
commit dcb465995d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 5 deletions

View File

@ -302,8 +302,10 @@ fn from<S: Step>(kind: Kind) -> StepDescription {
} }
} }
fn maybe_run(&self, builder: &Builder<'_>, pathsets: Vec<PathSet>) { fn maybe_run(&self, builder: &Builder<'_>, mut pathsets: Vec<PathSet>) {
if pathsets.iter().any(|set| self.is_excluded(builder, set)) { pathsets.retain(|set| !self.is_excluded(builder, set));
if pathsets.is_empty() {
return; return;
} }

View File

@ -136,9 +136,9 @@ fn test_exclude_kind() {
let mut config = configure("test", &["A"], &["A"]); let mut config = configure("test", &["A"], &["A"]);
// Ensure our test is valid, and `test::Rustc` would be run without the exclude. // Ensure our test is valid, and `test::Rustc` would be run without the exclude.
assert!(run_build(&[], config.clone()).contains::<test::CrateLibrustc>()); 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()]; 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. // Ensure builds for rustc are not skipped.
assert!(run_build(&[], config).contains::<compile::Rustc>()); assert!(run_build(&[], config).contains::<compile::Rustc>());
} }

View File

@ -58,5 +58,6 @@ ENV NO_CHANGE_USER=1
RUN chown 10719 -R /emsdk-portable/ RUN chown 10719 -R /emsdk-portable/
# Exclude library/alloc due to OOM in benches. # Exclude library/alloc due to OOM in benches.
# FIXME: Fix std tests
ENV SCRIPT python3 ../x.py test --stage 2 --host='' --target $TARGETS \ ENV SCRIPT python3 ../x.py test --stage 2 --host='' --target $TARGETS \
--skip library/alloc --skip library/alloc --skip library/std