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