Skip to content

Commit

Permalink
Auto merge of #44274 - Mark-Simulacrum:rustdoc-tests, r=alexcrichton
Browse files Browse the repository at this point in the history
Test rustdoc.

Also fixes the broken tests.

r? @alexcrichton
  • Loading branch information
bors committed Sep 10, 2017
2 parents ddd123e + f87696b commit f982ff0
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 13 deletions.
6 changes: 3 additions & 3 deletions src/bootstrap/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -251,9 +251,9 @@ impl<'a> Builder<'a> {
tool::RustInstaller, tool::Cargo, tool::Rls, tool::Rustdoc, tool::Clippy,
native::Llvm),
Kind::Test => describe!(check::Tidy, check::Bootstrap, check::DefaultCompiletest,
check::HostCompiletest, check::Crate, check::CrateLibrustc, check::Linkcheck,
check::Cargotest, check::Cargo, check::Rls, check::Docs, check::ErrorIndex,
check::Distcheck),
check::HostCompiletest, check::Crate, check::CrateLibrustc, check::Rustdoc,
check::Linkcheck, check::Cargotest, check::Cargo, check::Rls, check::Docs,
check::ErrorIndex, check::Distcheck),
Kind::Bench => describe!(check::Crate, check::CrateLibrustc),
Kind::Doc => describe!(doc::UnstableBook, doc::UnstableBookGen, doc::TheBook,
doc::Standalone, doc::Std, doc::Test, doc::Rustc, doc::ErrorIndex, doc::Nomicon,
Expand Down
69 changes: 68 additions & 1 deletion src/bootstrap/check.rs
Original file line number Diff line number Diff line change
Expand Up @@ -900,7 +900,6 @@ impl Step for CrateLibrustc {
}
}


#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct Crate {
compiler: Compiler,
Expand Down Expand Up @@ -1080,6 +1079,74 @@ impl Step for Crate {
}
}

#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct Rustdoc {
host: Interned<String>,
test_kind: TestKind,
}

impl Step for Rustdoc {
type Output = ();
const DEFAULT: bool = true;
const ONLY_HOSTS: bool = true;

fn should_run(run: ShouldRun) -> ShouldRun {
run.path("src/librustdoc").path("src/tools/rustdoc")
}

fn make_run(run: RunConfig) {
let builder = run.builder;

let test_kind = if builder.kind == Kind::Test {
TestKind::Test
} else if builder.kind == Kind::Bench {
TestKind::Bench
} else {
panic!("unexpected builder.kind in crate: {:?}", builder.kind);
};

builder.ensure(Rustdoc {
host: run.host,
test_kind,
});
}

fn run(self, builder: &Builder) {
let build = builder.build;
let test_kind = self.test_kind;

let compiler = builder.compiler(builder.top_stage, self.host);
let target = compiler.host;

builder.ensure(RemoteCopyLibs { compiler, target });

let mut cargo = builder.cargo(compiler, Mode::Librustc, target, test_kind.subcommand());
compile::rustc_cargo(build, &compiler, target, &mut cargo);
let _folder = build.fold_output(|| {
format!("{}_stage{}-rustdoc", test_kind.subcommand(), compiler.stage)
});
println!("{} rustdoc stage{} ({} -> {})", test_kind, compiler.stage,
&compiler.host, target);

if test_kind.subcommand() == "test" && !build.fail_fast {
cargo.arg("--no-fail-fast");
}

cargo.arg("-p").arg("rustdoc:0.0.0");

cargo.arg("--");
cargo.args(&build.config.cmd.test_args());

if build.config.quiet_tests {
cargo.arg("--quiet");
}

let _time = util::timeit();

try_run(build, &mut cargo);
}
}

fn envify(s: &str) -> String {
s.chars().map(|c| {
match c {
Expand Down
2 changes: 2 additions & 0 deletions src/librustdoc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ build = "build.rs"
[lib]
name = "rustdoc"
path = "lib.rs"
# SNAP/stage0(cargo)
doctest = false

[dependencies]
env_logger = { version = "0.4", default-features = false }
Expand Down
9 changes: 2 additions & 7 deletions src/librustdoc/clean/simplify.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,8 @@
//! the AST (e.g. see all of `clean::inline`), but this is not always a
//! non-lossy transformation. The current format of storage for where clauses
//! for functions and such is simply a list of predicates. One example of this
//! is that the AST predicate of:
//!
//! where T: Trait<Foo=Bar>
//!
//! is encoded as:
//!
//! where T: Trait, <T as Trait>::Foo = Bar
//! is that the AST predicate of: `where T: Trait<Foo=Bar>` is encoded as:
//! `where T: Trait, <T as Trait>::Foo = Bar`.
//!
//! This module attempts to reconstruct the original where and/or parameter
//! bounds by special casing scenarios such as these. Fun!
Expand Down
6 changes: 4 additions & 2 deletions src/librustdoc/html/markdown.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,12 @@
//! of `fmt::Display`. Example usage:
//!
//! ```
//! use rustdoc::html::markdown::Markdown;
//! #![feature(rustc_private)]
//!
//! use rustdoc::html::markdown::{RenderType, Markdown};
//!
//! let s = "My *markdown* _text_";
//! let html = format!("{}", Markdown(s));
//! let html = format!("{}", Markdown(s, RenderType::Pulldown));
//! // ... something using html
//! ```
Expand Down

0 comments on commit f982ff0

Please sign in to comment.