Add run-make test for rustdoc --emit=dep-info option

This commit is contained in:
Guillaume Gomez 2025-02-26 17:14:10 +01:00
parent 46a39f0b27
commit b97310c449
6 changed files with 31 additions and 1 deletions

View file

@ -153,7 +153,7 @@ Options:
--generate-redirect-map
Generate JSON file at the top level instead of
generating HTML redirection files
--emit [unversioned-shared-resources,toolchain-shared-resources,invocation-specific]
--emit [unversioned-shared-resources,toolchain-shared-resources,invocation-specific,dep-info]
Comma separated list of types of output for rustdoc to
emit
--no-run Compile doctests without running them

View file

@ -0,0 +1 @@
include!("foo.rs");

View file

@ -0,0 +1 @@
blablabla

View file

@ -0,0 +1 @@
pub fn foo() {}

View file

@ -0,0 +1,6 @@
#![crate_name = "foo"]
#[cfg_attr(doc, doc = include_str!("doc.md"))]
pub struct Bar;
mod bar;

View file

@ -0,0 +1,21 @@
// 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.
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.
rustdoc().input("lib.rs").arg("-Zunstable-options").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:");
// 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());
}