about summary refs log tree commit diff
path: root/tests/run-make/rustdoc-dep-info/rmake.rs
blob: 625f81fd428efe2e30c197cd271cf166ab3dc1e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// 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());
}