File tree Expand file tree Collapse file tree 3 files changed +31
-21
lines changed
tests/run-make/rustdoc-io-error Expand file tree Collapse file tree 3 files changed +31
-21
lines changed Original file line number Diff line number Diff line change @@ -177,7 +177,6 @@ run-make/rlib-format-packed-bundled-libs-3/Makefile
177177run-make/rlib-format-packed-bundled-libs/Makefile
178178run-make/rmeta-preferred/Makefile
179179run-make/rustc-macro-dep-files/Makefile
180- run-make/rustdoc-io-error/Makefile
181180run-make/sanitizer-cdylib-link/Makefile
182181run-make/sanitizer-dylib-link/Makefile
183182run-make/sanitizer-staticlib-link/Makefile
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1+ // This test verifies that rustdoc doesn't ICE when it encounters an IO error
2+ // while generating files. Ideally this would be a rustdoc-ui test, so we could
3+ // verify the error message as well.
4+ //
5+ // It operates by creating a temporary directory and modifying its
6+ // permissions so that it is not writable. We have to take special care to set
7+ // the permissions back to normal so that it's able to be deleted later.
8+
9+ //@ ignore-windows - the `set_readonly` functions doesn't work on folders.
10+ //@ ignore-arm - weird file perms on armhf-gnu
11+
12+ use run_make_support:: { path, rustdoc} ;
13+ use std:: fs;
14+
15+ fn main ( ) {
16+ let out_dir = path ( "rustdoc-io-error" ) ;
17+ let output = fs:: create_dir ( & out_dir) . unwrap ( ) ;
18+ let mut permissions = fs:: metadata ( & out_dir) . unwrap ( ) . permissions ( ) ;
19+ let original_permissions = permissions. clone ( ) ;
20+
21+ permissions. set_readonly ( true ) ;
22+ fs:: set_permissions ( & out_dir, permissions) . unwrap ( ) ;
23+
24+ let output = rustdoc ( ) . input ( "foo.rs" ) . output ( & out_dir) . env ( "RUST_BACKTRACE" , "1" ) . run_fail ( ) ;
25+
26+ fs:: set_permissions ( & out_dir, original_permissions) . unwrap ( ) ;
27+
28+ output
29+ . assert_exit_code ( 1 )
30+ . assert_stderr_contains ( "error: couldn't generate documentation: Permission denied" ) ;
31+ }
You can’t perform that action at this time.
0 commit comments