File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -968,10 +968,36 @@ mod test {
968968 check!( rmdir( dir) ) ;
969969 } )
970970
971+ iotest ! ( fn recursive_mkdir( ) {
972+ let tmpdir = tmpdir( ) ;
973+ let dir = tmpdir. join( "d1/d2" ) ;
974+ check!( mkdir_recursive( & dir, io:: UserRWX ) ) ;
975+ assert!( dir. is_dir( ) )
976+ } )
977+
971978 iotest ! ( fn recursive_mkdir_slash( ) {
972979 check!( mkdir_recursive( & Path :: new( "/" ) , io:: UserRWX ) ) ;
973980 } )
974981
982+ // FIXME(#12795) depends on lstat to work on windows
983+ #[ cfg( not( windows) ) ]
984+ iotest ! ( fn recursive_rmdir( ) {
985+ let tmpdir = tmpdir( ) ;
986+ let d1 = tmpdir. join( "d1" ) ;
987+ let dt = d1. join( "t" ) ;
988+ let dtt = dt. join( "t" ) ;
989+ let d2 = tmpdir. join( "d2" ) ;
990+ let canary = d2. join( "do_not_delete" ) ;
991+ check!( mkdir_recursive( & dtt, io:: UserRWX ) ) ;
992+ check!( mkdir_recursive( & d2, io:: UserRWX ) ) ;
993+ check!( File :: create( & canary) . write( bytes!( "foo" ) ) ) ;
994+ check!( symlink( & d2, & dt. join( "d2" ) ) ) ;
995+ check!( rmdir_recursive( & d1) ) ;
996+
997+ assert!( !d1. is_dir( ) ) ;
998+ assert!( canary. exists( ) ) ;
999+ } )
1000+
9751001 iotest ! ( fn unicode_path_is_dir( ) {
9761002 assert!( Path :: new( "." ) . is_dir( ) ) ;
9771003 assert!( !Path :: new( "test/stdtest/fs.rs" ) . is_dir( ) ) ;
You can’t perform that action at this time.
0 commit comments