Rollup merge of #42651 - infinity0:master, r=alexcrichton
Only run check-linkchecker when actually building docs Otherwise the build fails, when running tests but not building docs, e.g.: https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=ppc64el&ver=1.17.0%2Bdfsg2-3&stamp=1497403375&raw=0
This commit is contained in:
commit
a5926115b4
@ -463,7 +463,7 @@ fn crate_rule<'a, 'b>(build: &'a Build,
|
||||
rules.test("check-linkchecker", "src/tools/linkchecker")
|
||||
.dep(|s| s.name("tool-linkchecker").stage(0))
|
||||
.dep(|s| s.name("default:doc"))
|
||||
.default(true)
|
||||
.default(build.config.docs)
|
||||
.host(true)
|
||||
.run(move |s| check::linkcheck(build, s.target));
|
||||
rules.test("check-cargotest", "src/tools/cargotest")
|
||||
@ -1407,13 +1407,20 @@ mod tests {
|
||||
fn build(args: &[&str],
|
||||
extra_host: &[&str],
|
||||
extra_target: &[&str]) -> Build {
|
||||
build_(args, extra_host, extra_target, true)
|
||||
}
|
||||
|
||||
fn build_(args: &[&str],
|
||||
extra_host: &[&str],
|
||||
extra_target: &[&str],
|
||||
docs: bool) -> Build {
|
||||
let mut args = args.iter().map(|s| s.to_string()).collect::<Vec<_>>();
|
||||
args.push("--build".to_string());
|
||||
args.push("A".to_string());
|
||||
let flags = Flags::parse(&args);
|
||||
|
||||
let mut config = Config::default();
|
||||
config.docs = true;
|
||||
config.docs = docs;
|
||||
config.build = "A".to_string();
|
||||
config.host = vec![config.build.clone()];
|
||||
config.host.extend(extra_host.iter().map(|s| s.to_string()));
|
||||
@ -1768,4 +1775,22 @@ fn test_with_a_target() {
|
||||
assert!(!plan.iter().any(|s| s.name.contains("tidy")));
|
||||
assert!(plan.iter().any(|s| s.name.contains("valgrind")));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_disable_docs() {
|
||||
let build = build_(&["test"], &[], &[], false);
|
||||
let rules = super::build_rules(&build);
|
||||
let plan = rules.plan();
|
||||
println!("rules: {:#?}", plan);
|
||||
assert!(!plan.iter().any(|s| {
|
||||
s.name.contains("doc-") || s.name.contains("default:doc")
|
||||
}));
|
||||
// none of the dependencies should be a doc rule either
|
||||
assert!(!plan.iter().any(|s| {
|
||||
rules.rules[s.name].deps.iter().any(|dep| {
|
||||
let dep = dep(&rules.sbuild.name(s.name));
|
||||
dep.name.contains("doc-") || dep.name.contains("default:doc")
|
||||
})
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user