mirror of https://github.com/rust-lang/rust.git
Test rustdoc unit tests.
Doc tests are temporarily disabled until next release cycle, since current beta Cargo errors on them. Upgrade should be smooth as the relevant tests are already fixed in this commit.
This commit is contained in:
parent
2f1ef9ef11
commit
f87696b268
|
@ -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,
|
||||
|
|
|
@ -900,7 +900,6 @@ impl Step for CrateLibrustc {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct Crate {
|
||||
compiler: Compiler,
|
||||
|
@ -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 {
|
||||
|
|
|
@ -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 }
|
||||
|
|
|
@ -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!
|
||||
|
|
|
@ -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
|
||||
//! ```
|
||||
|
||||
|
|
Loading…
Reference in New Issue