File tree Expand file tree Collapse file tree 2 files changed +16
-2
lines changed
src/tools/miri/tests/pass-dep/shims Expand file tree Collapse file tree 2 files changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -674,7 +674,10 @@ impl DirEntry {
674
674
self.file_name_os_str().to_os_string()
675
675
}
676
676
677
- #[cfg(any(target_os = "linux", target_os = "emscripten", target_os = "android"))]
677
+ #[cfg(all(
678
+ any(target_os = "linux", target_os = "emscripten", target_os = "android"),
679
+ not(miri)
680
+ ))]
678
681
pub fn metadata(&self) -> io::Result<FileAttr> {
679
682
let fd = cvt(unsafe { dirfd(self.dir.dirp.0) })?;
680
683
let name = self.name_cstr().as_ptr();
@@ -695,7 +698,10 @@ impl DirEntry {
695
698
Ok(FileAttr::from_stat64(stat))
696
699
}
697
700
698
- #[cfg(not(any(target_os = "linux", target_os = "emscripten", target_os = "android")))]
701
+ #[cfg(any(
702
+ not(any(target_os = "linux", target_os = "emscripten", target_os = "android")),
703
+ miri
704
+ ))]
699
705
pub fn metadata(&self) -> io::Result<FileAttr> {
700
706
lstat(&self.path())
701
707
}
Original file line number Diff line number Diff line change @@ -404,6 +404,14 @@ fn test_directory() {
404
404
let mut file_names = dir_iter.map(|e| e.unwrap().file_name()).collect::<Vec<_>>();
405
405
file_names.sort_unstable();
406
406
assert_eq!(file_names, vec!["test_file_1", "test_file_2"]);
407
+ // Test that read_dir metadata calls succeed
408
+ assert_eq!(
409
+ &[true, true],
410
+ &*read_dir(&dir_path)
411
+ .unwrap()
412
+ .map(|e| e.unwrap().metadata().unwrap().is_file())
413
+ .collect::<Vec<_>>()
414
+ );
407
415
// Deleting the directory should fail, since it is not empty.
408
416
assert_eq!(ErrorKind::DirectoryNotEmpty, remove_dir(&dir_path).unwrap_err().kind());
409
417
// Clean up the files in the directory
You can’t perform that action at this time.
0 commit comments