diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2022-07-01 23:39:10 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-01 23:39:10 +0200 |
| commit | 00d68a7890cdd4dc9a1752d02f7b18e0eab88e39 (patch) | |
| tree | 84b89c05133d25353aff7d19f9b2b3a242cb10ea | |
| parent | b0935b1ddf12f96546df32d805b7dd874459f4cb (diff) | |
| parent | 6565509c19ec3f143c917335aa0f23b073ad1f0a (diff) | |
| download | rust-00d68a7890cdd4dc9a1752d02f7b18e0eab88e39.tar.gz rust-00d68a7890cdd4dc9a1752d02f7b18e0eab88e39.zip | |
Rollup merge of #98708 - pinkforest:rustdoc-fix-98690, r=GuillaumeGomez
rustdoc: fix 98690 Panic if invalid path for -Z persist-doctests Closes #98690 for rustdoc panic I changed this to do eprintln and orderly panic instead of unwrap doing unhandled panic ~/gg/rust/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc --test -Z unstable-options --persist-doctests /tmp/foobar main.rs Couldn't create directory for doctest executables: Permission denied (os error 13)
| -rw-r--r-- | src/librustdoc/doctest.rs | 6 | ||||
| -rw-r--r-- | src/test/rustdoc-ui/issue-98690.rs | 10 | ||||
| -rw-r--r-- | src/test/rustdoc-ui/issue-98690.stderr | 1 |
3 files changed, 15 insertions, 2 deletions
diff --git a/src/librustdoc/doctest.rs b/src/librustdoc/doctest.rs index ab72f4a3f50..509c4253f0f 100644 --- a/src/librustdoc/doctest.rs +++ b/src/librustdoc/doctest.rs @@ -1003,8 +1003,10 @@ impl Tester for Collector { let outdir = if let Some(mut path) = rustdoc_options.persist_doctests.clone() { path.push(&test_id); - std::fs::create_dir_all(&path) - .expect("Couldn't create directory for doctest executables"); + if let Err(err) = std::fs::create_dir_all(&path) { + eprintln!("Couldn't create directory for doctest executables: {}", err); + panic::resume_unwind(box ()); + } DirState::Perm(path) } else { diff --git a/src/test/rustdoc-ui/issue-98690.rs b/src/test/rustdoc-ui/issue-98690.rs new file mode 100644 index 00000000000..fe9bd87ab28 --- /dev/null +++ b/src/test/rustdoc-ui/issue-98690.rs @@ -0,0 +1,10 @@ +// compile-flags: --test --persist-doctests /../../ -Z unstable-options +// failure-status: 101 +// only-linux + +#![crate_name = "foo"] + +//! ```rust +//! use foo::dummy; +//! dummy(); +//! ``` diff --git a/src/test/rustdoc-ui/issue-98690.stderr b/src/test/rustdoc-ui/issue-98690.stderr new file mode 100644 index 00000000000..47d94f99a45 --- /dev/null +++ b/src/test/rustdoc-ui/issue-98690.stderr @@ -0,0 +1 @@ +Couldn't create directory for doctest executables: Permission denied (os error 13) |
