Migrate run-make/rustdoc-io-error
to rmake.rs
This commit is contained in:
parent
f873ae029e
commit
1ba5c9808c
@ -189,7 +189,6 @@ run-make/rlib-format-packed-bundled-libs-3/Makefile
|
|||||||
run-make/rlib-format-packed-bundled-libs/Makefile
|
run-make/rlib-format-packed-bundled-libs/Makefile
|
||||||
run-make/rmeta-preferred/Makefile
|
run-make/rmeta-preferred/Makefile
|
||||||
run-make/rustc-macro-dep-files/Makefile
|
run-make/rustc-macro-dep-files/Makefile
|
||||||
run-make/rustdoc-io-error/Makefile
|
|
||||||
run-make/sanitizer-cdylib-link/Makefile
|
run-make/sanitizer-cdylib-link/Makefile
|
||||||
run-make/sanitizer-dylib-link/Makefile
|
run-make/sanitizer-dylib-link/Makefile
|
||||||
run-make/sanitizer-staticlib-link/Makefile
|
run-make/sanitizer-staticlib-link/Makefile
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
include ../tools.mk
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
# ignore-windows
|
|
||||||
# The test uses `chmod`.
|
|
||||||
|
|
||||||
OUTPUT_DIR := "$(TMPDIR)/rustdoc-io-error"
|
|
||||||
|
|
||||||
# This test 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.
|
|
||||||
all:
|
|
||||||
mkdir -p $(OUTPUT_DIR)
|
|
||||||
chmod u-w $(OUTPUT_DIR)
|
|
||||||
-$(shell $(RUSTDOC) -o $(OUTPUT_DIR) foo.rs)
|
|
||||||
chmod u+w $(OUTPUT_DIR)
|
|
||||||
exit $($(.SHELLSTATUS) -eq 1)
|
|
31
tests/run-make/rustdoc-io-error/rmake.rs
Normal file
31
tests/run-make/rustdoc-io-error/rmake.rs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
// On windows, the `set_readonly` functions doesn't work on folders.
|
||||||
|
//@ ignore-windows
|
||||||
|
|
||||||
|
use run_make_support::{path, rustdoc};
|
||||||
|
use std::fs;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let out_dir = path("rustdoc-io-error");
|
||||||
|
let output = fs::create_dir(&out_dir).unwrap();
|
||||||
|
let mut permissions = fs::metadata(&out_dir).unwrap().permissions();
|
||||||
|
let original_permissions = permissions.clone();
|
||||||
|
|
||||||
|
permissions.set_readonly(true);
|
||||||
|
fs::set_permissions(&out_dir, permissions).unwrap();
|
||||||
|
|
||||||
|
let output = rustdoc().input("foo.rs").output(&out_dir).env("RUST_BACKTRACE", "1").run_fail();
|
||||||
|
|
||||||
|
fs::set_permissions(&out_dir, original_permissions).unwrap();
|
||||||
|
|
||||||
|
output
|
||||||
|
.assert_exit_code(1)
|
||||||
|
.assert_stderr_contains("error: couldn't generate documentation: Permission denied");
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user