about summary refs log tree commit diff
path: root/tests/run-make-cargo/rustdoc-scrape-examples-paths
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run-make-cargo/rustdoc-scrape-examples-paths')
-rw-r--r--tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/Cargo.toml8
-rw-r--r--tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/examples/complex.rs3
-rw-r--r--tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/examples/tester.rs1
-rw-r--r--tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/src/lib.rs7
-rw-r--r--tests/run-make-cargo/rustdoc-scrape-examples-paths/rmake.rs16
5 files changed, 35 insertions, 0 deletions
diff --git a/tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/Cargo.toml b/tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/Cargo.toml
new file mode 100644
index 00000000000..6962028375b
--- /dev/null
+++ b/tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "foo"
+version = "0.0.1"
+edition = "2024"
+
+[[example]]
+name = "complex"
+doc-scrape-examples = true
diff --git a/tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/examples/complex.rs b/tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/examples/complex.rs
new file mode 100644
index 00000000000..1cda7e098f4
--- /dev/null
+++ b/tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/examples/complex.rs
@@ -0,0 +1,3 @@
+fn main() {
+    let mut x = foo::X::new();
+}
diff --git a/tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/examples/tester.rs b/tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/examples/tester.rs
new file mode 100644
index 00000000000..fbd1906ec09
--- /dev/null
+++ b/tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/examples/tester.rs
@@ -0,0 +1 @@
+// This file MUST exist to trigger the original bug.
diff --git a/tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/src/lib.rs b/tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/src/lib.rs
new file mode 100644
index 00000000000..a9bb0272c78
--- /dev/null
+++ b/tests/run-make-cargo/rustdoc-scrape-examples-paths/foo/src/lib.rs
@@ -0,0 +1,7 @@
+pub struct X;
+
+impl X {
+    pub fn new() -> Self {
+        X
+    }
+}
diff --git a/tests/run-make-cargo/rustdoc-scrape-examples-paths/rmake.rs b/tests/run-make-cargo/rustdoc-scrape-examples-paths/rmake.rs
new file mode 100644
index 00000000000..6784e438762
--- /dev/null
+++ b/tests/run-make-cargo/rustdoc-scrape-examples-paths/rmake.rs
@@ -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;
+use run_make_support::scoped_run::run_in_tmpdir;
+
+fn main() {
+    // We copy the crate to be documented "outside" to prevent documenting
+    // the whole compiler.
+    std::env::set_current_dir("foo").unwrap();
+    run_in_tmpdir(|| {
+        // The `scrape-examples` feature is also implemented in `cargo` so instead of reproducing
+        // what `cargo` does, better to just let `cargo` do it.
+        cargo().args(["doc", "-p", "foo", "-Zrustdoc-scrape-examples"]).run();
+    })
+}