Permalink
Browse files

Auto merge of #55661 - kennytm:fix-exclude, r=alexcrichton

Fixed the bug in bootstrap where --exclude was ignored for run-pass test

This should fix the 3 hour timeout on AppVeyor which happened a lot recently.

Additionally, further rebalanced the AppVeyor subsets by moving "ui" and "linkchecker" into Set 2.
  • Loading branch information...
bors committed Nov 3, 2018
2 parents a3f0f51 + 2bde4e7 commit 04fdb44f5ccb6f909cf0f768781afa483e97097c
Showing with 43 additions and 3 deletions.
  1. +32 −2 src/bootstrap/builder.rs
  2. +5 −0 src/bootstrap/cache.rs
  3. +6 −1 src/bootstrap/mk/Makefile.in
@@ -130,7 +130,7 @@ impl PathSet {
fn has(&self, needle: &Path) -> bool {
match self {
PathSet::Set(set) => set.iter().any(|p| p.ends_with(needle)),
PathSet::Suite(_) => false,
PathSet::Suite(suite) => suite.ends_with(needle),
}
}

@@ -1849,7 +1849,7 @@ mod __test {
);

// Ensure we don't build any compiler artifacts.
assert!(builder.cache.all::<compile::Rustc>().is_empty());
assert!(!builder.cache.contains::<compile::Rustc>());
assert_eq!(
first(builder.cache.all::<test::Crate>()),
&[test::Crate {
@@ -1861,4 +1861,34 @@ mod __test {
},]
);
}

#[test]
fn test_exclude() {
let mut config = configure(&[], &[]);
config.exclude = vec![
"src/test/run-pass".into(),
"src/tools/tidy".into(),
];
config.cmd = Subcommand::Test {
paths: Vec::new(),
test_args: Vec::new(),
rustc_args: Vec::new(),
fail_fast: true,
doc_tests: DocTests::No,
bless: false,
compare_mode: None,
};

let build = Build::new(config);
let builder = Builder::new(&build);
builder.run_step_descriptions(&Builder::get_step_descriptions(Kind::Test), &[]);

// Ensure we have really excluded run-pass & tidy
assert!(!builder.cache.contains::<test::RunPass>());
assert!(!builder.cache.contains::<test::Tidy>());

// Ensure other tests are not affected.
assert!(builder.cache.contains::<test::RunPassFullDeps>());
assert!(builder.cache.contains::<test::RustdocUi>());
}
}
@@ -286,4 +286,9 @@ impl Cache {
v.sort_by_key(|&(a, _)| a);
v
}

#[cfg(test)]
pub fn contains<S: Step>(&self) -> bool {
self.0.borrow().contains_key(&TypeId::of::<S>())
}
}
@@ -85,7 +85,12 @@ check-stage2-T-arm-linux-androideabi-H-x86_64-unknown-linux-gnu:
check-stage2-T-x86_64-unknown-linux-musl-H-x86_64-unknown-linux-gnu:
$(Q)$(BOOTSTRAP) test --target x86_64-unknown-linux-musl

TESTS_IN_2 := src/test/run-pass src/test/compile-fail src/test/run-pass-fulldeps
TESTS_IN_2 := \
src/test/ui \
src/test/run-pass \
src/test/compile-fail \
src/test/run-pass-fulldeps \
src/tools/linkchecker

appveyor-subset-1:
$(Q)$(BOOTSTRAP) test $(TESTS_IN_2:%=--exclude %)

0 comments on commit 04fdb44

Please sign in to comment.