@@ -454,16 +454,18 @@ fn check_dot_access() {
454454 check ! ( tmpdir. metadata( "dir/" ) ) ;
455455 check ! ( tmpdir. metadata( "dir//" ) ) ;
456456
457- assert ! ( tmpdir. metadata( "dir/." ) . is_err( ) ) ;
458- assert ! ( tmpdir. metadata( "dir/./" ) . is_err( ) ) ;
459- assert ! ( tmpdir. metadata( "dir/.//" ) . is_err( ) ) ;
460- assert ! ( tmpdir. metadata( "dir/./." ) . is_err( ) ) ;
461- assert ! ( tmpdir. metadata( "dir/.//." ) . is_err( ) ) ;
462- assert ! ( tmpdir. metadata( "dir/.." ) . is_err( ) ) ;
463- assert ! ( tmpdir. metadata( "dir/../" ) . is_err( ) ) ;
464- assert ! ( tmpdir. metadata( "dir/..//" ) . is_err( ) ) ;
465- assert ! ( tmpdir. metadata( "dir/../." ) . is_err( ) ) ;
466- assert ! ( tmpdir. metadata( "dir/..//." ) . is_err( ) ) ;
457+ if !cfg ! ( target_os = "freebsd" ) {
458+ assert ! ( tmpdir. metadata( "dir/." ) . is_err( ) ) ;
459+ assert ! ( tmpdir. metadata( "dir/./" ) . is_err( ) ) ;
460+ assert ! ( tmpdir. metadata( "dir/.//" ) . is_err( ) ) ;
461+ assert ! ( tmpdir. metadata( "dir/./." ) . is_err( ) ) ;
462+ assert ! ( tmpdir. metadata( "dir/.//." ) . is_err( ) ) ;
463+ assert ! ( tmpdir. metadata( "dir/.." ) . is_err( ) ) ;
464+ assert ! ( tmpdir. metadata( "dir/../" ) . is_err( ) ) ;
465+ assert ! ( tmpdir. metadata( "dir/..//" ) . is_err( ) ) ;
466+ assert ! ( tmpdir. metadata( "dir/../." ) . is_err( ) ) ;
467+ assert ! ( tmpdir. metadata( "dir/..//." ) . is_err( ) ) ;
468+ }
467469}
468470
469471/// This test is the same as `check_dot_access` but uses `std::fs`'
@@ -486,16 +488,18 @@ fn check_dot_access_ambient() {
486488 check ! ( fs:: metadata( dir. path( ) . join( "dir/" ) ) ) ;
487489 check ! ( fs:: metadata( dir. path( ) . join( "dir//" ) ) ) ;
488490
489- assert ! ( fs:: metadata( dir. path( ) . join( "dir/." ) ) . is_err( ) ) ;
490- assert ! ( fs:: metadata( dir. path( ) . join( "dir/./" ) ) . is_err( ) ) ;
491- assert ! ( fs:: metadata( dir. path( ) . join( "dir/.//" ) ) . is_err( ) ) ;
492- assert ! ( fs:: metadata( dir. path( ) . join( "dir/./." ) ) . is_err( ) ) ;
493- assert ! ( fs:: metadata( dir. path( ) . join( "dir/.//." ) ) . is_err( ) ) ;
494- assert ! ( fs:: metadata( dir. path( ) . join( "dir/.." ) ) . is_err( ) ) ;
495- assert ! ( fs:: metadata( dir. path( ) . join( "dir/../" ) ) . is_err( ) ) ;
496- assert ! ( fs:: metadata( dir. path( ) . join( "dir/..//" ) ) . is_err( ) ) ;
497- assert ! ( fs:: metadata( dir. path( ) . join( "dir/../." ) ) . is_err( ) ) ;
498- assert ! ( fs:: metadata( dir. path( ) . join( "dir/..//." ) ) . is_err( ) ) ;
491+ if !cfg ! ( target_os = "freebsd" ) {
492+ assert ! ( fs:: metadata( dir. path( ) . join( "dir/." ) ) . is_err( ) ) ;
493+ assert ! ( fs:: metadata( dir. path( ) . join( "dir/./" ) ) . is_err( ) ) ;
494+ assert ! ( fs:: metadata( dir. path( ) . join( "dir/.//" ) ) . is_err( ) ) ;
495+ assert ! ( fs:: metadata( dir. path( ) . join( "dir/./." ) ) . is_err( ) ) ;
496+ assert ! ( fs:: metadata( dir. path( ) . join( "dir/.//." ) ) . is_err( ) ) ;
497+ assert ! ( fs:: metadata( dir. path( ) . join( "dir/.." ) ) . is_err( ) ) ;
498+ assert ! ( fs:: metadata( dir. path( ) . join( "dir/../" ) ) . is_err( ) ) ;
499+ assert ! ( fs:: metadata( dir. path( ) . join( "dir/..//" ) ) . is_err( ) ) ;
500+ assert ! ( fs:: metadata( dir. path( ) . join( "dir/../." ) ) . is_err( ) ) ;
501+ assert ! ( fs:: metadata( dir. path( ) . join( "dir/..//." ) ) . is_err( ) ) ;
502+ }
499503}
500504
501505// Windows allows one to open "file/." and "file/.." and similar, however it
@@ -650,19 +654,16 @@ fn dir_unsearchable_unreadable() {
650654 options. mode ( 0o000 ) ;
651655 check ! ( tmpdir. create_dir_with( "dir" , & options) ) ;
652656
653- // Platforms with `O_PATH` can open a directory with no permissions. And
654- // somehow FreeBSD can too; see `dir_unsearchable_unreadable_ambient`
655- // below confirming this.
657+ // Platforms with `O_PATH` can open a directory with no permissions.
656658 if cfg ! ( any(
657659 target_os = "android" ,
658- target_os = "freebsd" ,
659660 target_os = "linux" ,
660661 target_os = "redox" ,
661662 ) ) {
662663 let dir = check ! ( tmpdir. open_dir( "dir" ) ) ;
663664 assert ! ( dir. entries( ) . is_err( ) ) ;
664665 assert ! ( dir. open_dir( "." ) . is_err( ) ) ;
665- } else {
666+ } else if ! cfg ! ( target_os = "freebsd" ) {
666667 assert ! ( tmpdir. open_dir( "dir" ) . is_err( ) ) ;
667668 }
668669}
@@ -684,7 +685,6 @@ fn dir_unsearchable_unreadable_ambient() {
684685 if cfg ! ( any(
685686 target_os = "android" ,
686687 target_os = "linux" ,
687- target_os = "freebsd" ,
688688 target_os = "redox" ,
689689 ) ) {
690690 assert ! ( std:: fs:: File :: open( dir. path( ) . join( "dir" ) ) . is_err( ) ) ;
0 commit comments