Skip to content

Commit

Permalink
Migrate run-make/rustdoc-io-error to rmake.rs
Browse files Browse the repository at this point in the history
  • Loading branch information
GuillaumeGomez committed May 6, 2024
1 parent 25e3949 commit 7a43b72
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 20 deletions.
20 changes: 0 additions & 20 deletions tests/run-make/rustdoc-io-error/Makefile

This file was deleted.

26 changes: 26 additions & 0 deletions tests/run-make/rustdoc-io-error/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// This test verifies that rustdoc doesn't ICE when it encounters an IO error
// while generating files. Ideally this would be a rustdoc-ui test, so we could
// verify the error message as well.
//
// It operates by creating a temporary directory and modifying its
// permissions so that it is not writable. We have to take special care to set
// the permissions back to normal so that it's able to be deleted later.

use run_make_support::{rustdoc, tmp_dir};
use std::fs;

fn main() {
let out_dir = tmp_dir().join("rustdoc-io-error");
let output = fs::create_dir(&out_dir).unwrap();
let mut permissions = fs::metadata(&out_dir).unwrap().permissions();
permissions.set_readonly(true);
fs::set_permissions(&out_dir, permissions).unwrap();

let output = rustdoc().input("foo.rs").output(&out_dir).command_output();
#[cfg(not(windows))]
assert_eq!(output.status.code().unwrap(), 1);
assert!(!output.status.success());
let stderr = String::from_utf8(output.stderr).unwrap();

assert!(stderr.contains("error: couldn't generate documentation: Permission denied"));
}

0 comments on commit 7a43b72

Please sign in to comment.