Skip documentation files without ``` when running markdown tests.
This should reduce the 'running 0 tests' noise in builds, and is a good heuristic for us to use.
This commit is contained in:
parent
9a4e13f5c4
commit
dd1d75e9ec
@ -18,9 +18,10 @@ extern crate build_helper;
|
||||
use std::collections::HashSet;
|
||||
use std::env;
|
||||
use std::fmt;
|
||||
use std::fs;
|
||||
use std::fs::{self, File};
|
||||
use std::path::{PathBuf, Path};
|
||||
use std::process::Command;
|
||||
use std::io::Read;
|
||||
|
||||
use build_helper::output;
|
||||
|
||||
@ -328,24 +329,15 @@ pub fn docs(build: &Build, compiler: &Compiler) {
|
||||
|
||||
while let Some(p) = stack.pop() {
|
||||
if p.is_dir() {
|
||||
stack.extend(t!(p.read_dir()).map(|p| t!(p).path()));
|
||||
stack.extend(t!(p.read_dir()).map(|p| t!(p).path()).filter(|p| {
|
||||
p.extension().and_then(|s| s.to_str()) == Some("md") &&
|
||||
// The nostarch directory in the book is for no starch, and so isn't guaranteed to
|
||||
// build. We don't care if it doesn't build, so skip it.
|
||||
p.to_str().map_or(true, |p| !p.contains("nostarch"))
|
||||
}));
|
||||
continue
|
||||
}
|
||||
|
||||
if p.extension().and_then(|s| s.to_str()) != Some("md") {
|
||||
continue
|
||||
}
|
||||
|
||||
// The nostarch directory in the book is for no starch, and so isn't guaranteed to build.
|
||||
// we don't care if it doesn't build, so skip it.
|
||||
use std::ffi::OsStr;
|
||||
let path: &OsStr = p.as_ref();
|
||||
if let Some(path) = path.to_str() {
|
||||
if path.contains("nostarch") {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
println!("doc tests for: {}", p.display());
|
||||
markdown_test(build, compiler, &p);
|
||||
}
|
||||
@ -376,6 +368,13 @@ pub fn error_index(build: &Build, compiler: &Compiler) {
|
||||
}
|
||||
|
||||
fn markdown_test(build: &Build, compiler: &Compiler, markdown: &Path) {
|
||||
let mut file = t!(File::open(markdown));
|
||||
let mut contents = String::new();
|
||||
t!(file.read_to_string(&mut contents));
|
||||
if !contents.contains("```") {
|
||||
return;
|
||||
}
|
||||
|
||||
let mut cmd = Command::new(build.rustdoc(compiler));
|
||||
build.add_rustc_lib_path(compiler, &mut cmd);
|
||||
build.add_rust_test_threads(&mut cmd);
|
||||
|
Loading…
Reference in New Issue
Block a user