rustdoc: add test case for alias bug
Reproduces <https://github.com/rust-lang/cargo/pull/16309#discussion_r2586792981>
This commit is contained in:
parent
36b2369c91
commit
cf83387d2f
3 changed files with 80 additions and 0 deletions
10
tests/run-make/rustdoc-merge-directory-alias/dep1.rs
Normal file
10
tests/run-make/rustdoc-merge-directory-alias/dep1.rs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
pub struct Dep1;
|
||||
pub struct Dep2;
|
||||
pub struct Dep3;
|
||||
pub struct Dep4;
|
||||
|
||||
//@ hasraw crates.js 'dep1'
|
||||
//@ hasraw search.index/name/*.js 'Dep1'
|
||||
//@ has dep1/index.html
|
||||
#[doc(alias="dep1_missing")]
|
||||
pub struct Dep5;
|
||||
4
tests/run-make/rustdoc-merge-directory-alias/dep2.rs
Normal file
4
tests/run-make/rustdoc-merge-directory-alias/dep2.rs
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
//@ hasraw crates.js 'dep2'
|
||||
//@ hasraw search.index/name/*.js 'Second'
|
||||
//@ has dep2/index.html
|
||||
pub struct Second;
|
||||
66
tests/run-make/rustdoc-merge-directory-alias/rmake.rs
Normal file
66
tests/run-make/rustdoc-merge-directory-alias/rmake.rs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
// Running --merge=finalize without an input crate root should not trigger ICE.
|
||||
// Issue: https://github.com/rust-lang/rust/issues/146646
|
||||
|
||||
//@ needs-target-std
|
||||
|
||||
use run_make_support::{htmldocck, path, rustdoc};
|
||||
|
||||
fn main() {
|
||||
let out_dir = path("out");
|
||||
let merged_dir = path("merged");
|
||||
let parts_out_dir = path("parts");
|
||||
|
||||
rustdoc()
|
||||
.input("dep1.rs")
|
||||
.out_dir(&out_dir)
|
||||
.arg("-Zunstable-options")
|
||||
.arg(format!("--parts-out-dir={}", parts_out_dir.display()))
|
||||
.arg("--merge=none")
|
||||
.run();
|
||||
assert!(parts_out_dir.join("dep1.json").exists());
|
||||
|
||||
let output = rustdoc()
|
||||
.arg("-Zunstable-options")
|
||||
.out_dir(&out_dir)
|
||||
.arg(format!("--include-parts-dir={}", parts_out_dir.display()))
|
||||
.arg("--merge=finalize")
|
||||
.run();
|
||||
output.assert_stderr_not_contains("error: the compiler unexpectedly panicked. this is a bug.");
|
||||
|
||||
rustdoc()
|
||||
.input("dep2.rs")
|
||||
.out_dir(&out_dir)
|
||||
.arg("-Zunstable-options")
|
||||
.arg(format!("--parts-out-dir={}", parts_out_dir.display()))
|
||||
.arg("--merge=none")
|
||||
.run();
|
||||
assert!(parts_out_dir.join("dep2.json").exists());
|
||||
|
||||
let output2 = rustdoc()
|
||||
.arg("-Zunstable-options")
|
||||
.out_dir(&out_dir)
|
||||
.arg(format!("--include-parts-dir={}", parts_out_dir.display()))
|
||||
.arg("--merge=finalize")
|
||||
.run();
|
||||
output2.assert_stderr_not_contains("error: the compiler unexpectedly panicked. this is a bug.");
|
||||
|
||||
rustdoc()
|
||||
.input("dep1.rs")
|
||||
.out_dir(&out_dir)
|
||||
.arg("-Zunstable-options")
|
||||
.arg(format!("--parts-out-dir={}", parts_out_dir.display()))
|
||||
.arg("--merge=none")
|
||||
.run();
|
||||
assert!(parts_out_dir.join("dep1.json").exists());
|
||||
|
||||
let output3 = rustdoc()
|
||||
.arg("-Zunstable-options")
|
||||
.out_dir(&out_dir)
|
||||
.arg(format!("--include-parts-dir={}", parts_out_dir.display()))
|
||||
.arg("--merge=finalize")
|
||||
.run();
|
||||
output3.assert_stderr_not_contains("error: the compiler unexpectedly panicked. this is a bug.");
|
||||
|
||||
htmldocck().arg(&out_dir).arg("dep1.rs").run();
|
||||
htmldocck().arg(&out_dir).arg("dep2.rs").run();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue