Skip to content

Commit

Permalink
Rollup merge of rust-lang#98708 - pinkforest:rustdoc-fix-98690, r=Gui…
Browse files Browse the repository at this point in the history
…llaumeGomez

rustdoc: fix 98690 Panic if invalid path for -Z persist-doctests

Closes rust-lang#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)
  • Loading branch information
matthiaskrgr authored Jun 30, 2022
2 parents 0ab7073 + 29e0e14 commit 0fcbeb1
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/librustdoc/doctest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
9 changes: 9 additions & 0 deletions src/test/rustdoc-ui/issue-98690.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// compile-flags: --test --persist-doctests /../../ -Z unstable-options
// failure-status: 101

#![crate_name = "foo"]

//! ```rust
//! use foo::dummy;
//! dummy();
//! ```
1 change: 1 addition & 0 deletions src/test/rustdoc-ui/issue-98690.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Couldn't create directory for doctest executables: Permission denied (os error 13)

0 comments on commit 0fcbeb1

Please sign in to comment.