Add regression test for rustdoc scrape-examples feature crash (#144752)
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
[package]
|
||||
name = "foo"
|
||||
version = "0.0.1"
|
||||
edition = "2024"
|
||||
|
||||
[[example]]
|
||||
name = "complex"
|
||||
doc-scrape-examples = true
|
||||
@@ -0,0 +1,3 @@
|
||||
fn main() {
|
||||
let mut x = foo::X::new();
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
// This file MUST exist to trigger the original bug.
|
||||
@@ -0,0 +1,7 @@
|
||||
pub struct X;
|
||||
|
||||
impl X {
|
||||
pub fn new() -> Self {
|
||||
X
|
||||
}
|
||||
}
|
||||
16
tests/run-make/rustdoc-scrape-examples-paths/rmake.rs
Normal file
16
tests/run-make/rustdoc-scrape-examples-paths/rmake.rs
Normal file
@@ -0,0 +1,16 @@
|
||||
//! Test to ensure that the rustdoc `scrape-examples` feature is not panicking.
|
||||
//! Regression test for <https://github.com/rust-lang/rust/issues/144752>.
|
||||
|
||||
use run_make_support::{cargo, path, rfs};
|
||||
|
||||
fn main() {
|
||||
// We copy the crate to be documented "outside" to prevent documenting
|
||||
// the whole compiler.
|
||||
let tmp = std::env::temp_dir();
|
||||
let test_crate = tmp.join("foo");
|
||||
rfs::copy_dir_all(path("foo"), &test_crate);
|
||||
|
||||
// The `scrape-examples` feature is also implemented in `cargo` so instead of reproducing
|
||||
// what `cargo` does, better to just let `cargo` do it.
|
||||
cargo().current_dir(&test_crate).args(["doc", "-p", "foo", "-Zrustdoc-scrape-examples"]).run();
|
||||
}
|
||||
Reference in New Issue
Block a user