mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-02 10:18:25 +00:00

rustdoc has many flags to pass external HTML/Markdown/CSS files that end up in the build. These need to be recorded in depinfo so that Cargo will rebuild the crate if they change.
37 lines
1.4 KiB
Rust
37 lines
1.4 KiB
Rust
// This is a simple smoke test for rustdoc's `--emit dep-info` feature. It prints out
|
|
// information about dependencies in a Makefile-compatible format, as a `.d` file.
|
|
|
|
//@ needs-target-std
|
|
|
|
use run_make_support::assertion_helpers::assert_contains;
|
|
use run_make_support::{path, rfs, rustdoc};
|
|
|
|
fn main() {
|
|
// We're only emitting dep info, so we shouldn't be running static analysis to
|
|
// figure out that this program is erroneous.
|
|
// Ensure that all kinds of input reading flags end up in dep-info.
|
|
rustdoc()
|
|
.input("lib.rs")
|
|
.arg("-Zunstable-options")
|
|
.arg("--html-before-content=before.html")
|
|
.arg("--markdown-after-content=after.md")
|
|
.arg("--extend-css=extend.css")
|
|
.arg("--theme=theme.css")
|
|
.emit("dep-info")
|
|
.run();
|
|
|
|
let content = rfs::read_to_string("foo.d");
|
|
assert_contains(&content, "lib.rs:");
|
|
assert_contains(&content, "foo.rs:");
|
|
assert_contains(&content, "bar.rs:");
|
|
assert_contains(&content, "doc.md:");
|
|
assert_contains(&content, "after.md:");
|
|
assert_contains(&content, "before.html:");
|
|
assert_contains(&content, "extend.css:");
|
|
assert_contains(&content, "theme.css:");
|
|
|
|
// Now we check that we can provide a file name to the `dep-info` argument.
|
|
rustdoc().input("lib.rs").arg("-Zunstable-options").emit("dep-info=bla.d").run();
|
|
assert!(path("bla.d").exists());
|
|
}
|