File tree 1 file changed +26
-0
lines changed
1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -968,10 +968,36 @@ mod test {
968
968
check!( rmdir( dir) ) ;
969
969
} )
970
970
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
+
971
978
iotest ! ( fn recursive_mkdir_slash( ) {
972
979
check!( mkdir_recursive( & Path :: new( "/" ) , io:: UserRWX ) ) ;
973
980
} )
974
981
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
+
975
1001
iotest ! ( fn unicode_path_is_dir( ) {
976
1002
assert!( Path :: new( "." ) . is_dir( ) ) ;
977
1003
assert!( !Path :: new( "test/stdtest/fs.rs" ) . is_dir( ) ) ;
You can’t perform that action at this time.
0 commit comments