diff options
| author | Peter Atashian <retep998@gmail.com> | 2015-10-19 00:54:51 -0400 |
|---|---|---|
| committer | Peter Atashian <retep998@gmail.com> | 2015-10-19 00:54:51 -0400 |
| commit | dd11d3c6191a43e5ab86f57f3e6b087115d8f420 (patch) | |
| tree | e99e953bf8607d09f0b4cfd2b7a2c3e0b6029071 | |
| parent | d3f497861d426c8724dd84f161ca21f274663963 (diff) | |
| download | rust-dd11d3c6191a43e5ab86f57f3e6b087115d8f420.tar.gz rust-dd11d3c6191a43e5ab86f57f3e6b087115d8f420.zip | |
Add error kind handling for ERROR_PATH_NOT_FOUND
Fixes #29150 Signed-off-by: Peter Atashian <retep998@gmail.com>
| -rw-r--r-- | src/libstd/fs.rs | 6 | ||||
| -rw-r--r-- | src/libstd/sys/windows/c.rs | 2 | ||||
| -rw-r--r-- | src/libstd/sys/windows/mod.rs | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/src/libstd/fs.rs b/src/libstd/fs.rs index 0669f545a83..1da7a1502d9 100644 --- a/src/libstd/fs.rs +++ b/src/libstd/fs.rs @@ -2162,4 +2162,10 @@ mod tests { } } } + + #[test] + fn read_dir_not_found() { + let res = fs::read_dir("/path/that/does/not/exist"); + assert_eq!(res.err().unwrap().kind(), ErrorKind::NotFound); + } } diff --git a/src/libstd/sys/windows/c.rs b/src/libstd/sys/windows/c.rs index bac5b47eb1a..a9eb4db2f53 100644 --- a/src/libstd/sys/windows/c.rs +++ b/src/libstd/sys/windows/c.rs @@ -83,6 +83,8 @@ pub const EXCEPTION_CONTINUE_SEARCH: LONG = 0; pub const EXCEPTION_MAXIMUM_PARAMETERS: usize = 15; pub const EXCEPTION_STACK_OVERFLOW: DWORD = 0xc00000fd; +pub const ERROR_PATH_NOT_FOUND: libc::c_int = 3; + #[repr(C)] #[cfg(target_arch = "x86")] pub struct WSADATA { diff --git a/src/libstd/sys/windows/mod.rs b/src/libstd/sys/windows/mod.rs index 85f5d4e5884..4df3c561ab1 100644 --- a/src/libstd/sys/windows/mod.rs +++ b/src/libstd/sys/windows/mod.rs @@ -51,6 +51,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind { libc::ERROR_ALREADY_EXISTS => ErrorKind::AlreadyExists, libc::ERROR_BROKEN_PIPE => ErrorKind::BrokenPipe, libc::ERROR_FILE_NOT_FOUND => ErrorKind::NotFound, + c::ERROR_PATH_NOT_FOUND => ErrorKind::NotFound, libc::ERROR_NO_DATA => ErrorKind::BrokenPipe, libc::ERROR_OPERATION_ABORTED => ErrorKind::TimedOut, |
