Add regression test for rustdoc scrape-examples feature crash (#144752)

This commit is contained in:
Guillaume Gomez
2025-08-06 17:09:21 +02:00
parent 768f97748f
commit a2b1714fb2
5 changed files with 35 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
[package]
name = "foo"
version = "0.0.1"
edition = "2024"
[[example]]
name = "complex"
doc-scrape-examples = true

View File

@@ -0,0 +1,3 @@
fn main() {
let mut x = foo::X::new();
}

View File

@@ -0,0 +1 @@
// This file MUST exist to trigger the original bug.

View File

@@ -0,0 +1,7 @@
pub struct X;
impl X {
pub fn new() -> Self {
X
}
}

View 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();
}