Map EEXIST to PathAlreadyExists error, closes #20226
This commit is contained in:
parent
f673e9841f
commit
eb4b20288e
|
@ -1148,6 +1148,19 @@ mod test {
|
||||||
check!(rmdir_recursive(dir));
|
check!(rmdir_recursive(dir));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn mkdir_path_already_exists_error() {
|
||||||
|
use io::{IoError, PathAlreadyExists};
|
||||||
|
|
||||||
|
let tmpdir = tmpdir();
|
||||||
|
let dir = &tmpdir.join("mkdir_error_twice");
|
||||||
|
check!(mkdir(dir, io::USER_RWX));
|
||||||
|
match mkdir(dir, io::USER_RWX) {
|
||||||
|
Err(IoError{kind:PathAlreadyExists,..}) => (),
|
||||||
|
_ => assert!(false)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn recursive_mkdir() {
|
fn recursive_mkdir() {
|
||||||
let tmpdir = tmpdir();
|
let tmpdir = tmpdir();
|
||||||
|
|
|
@ -109,6 +109,8 @@ pub fn decode_error(errno: i32) -> IoError {
|
||||||
"file descriptor is not a TTY"),
|
"file descriptor is not a TTY"),
|
||||||
libc::ETIMEDOUT => (io::TimedOut, "operation timed out"),
|
libc::ETIMEDOUT => (io::TimedOut, "operation timed out"),
|
||||||
libc::ECANCELED => (io::TimedOut, "operation aborted"),
|
libc::ECANCELED => (io::TimedOut, "operation aborted"),
|
||||||
|
libc::consts::os::posix88::EEXIST =>
|
||||||
|
(io::PathAlreadyExists, "path already exists"),
|
||||||
|
|
||||||
// These two constants can have the same value on some systems,
|
// These two constants can have the same value on some systems,
|
||||||
// but different values on others, so we can't use a match
|
// but different values on others, so we can't use a match
|
||||||
|
|
|
@ -121,6 +121,8 @@ pub fn decode_error(errno: i32) -> IoError {
|
||||||
"invalid handle provided to function"),
|
"invalid handle provided to function"),
|
||||||
libc::ERROR_NOTHING_TO_TERMINATE =>
|
libc::ERROR_NOTHING_TO_TERMINATE =>
|
||||||
(io::InvalidInput, "no process to kill"),
|
(io::InvalidInput, "no process to kill"),
|
||||||
|
libc::ERROR_ALREADY_EXISTS =>
|
||||||
|
(io::PathAlreadyExists, "path already exists"),
|
||||||
|
|
||||||
// libuv maps this error code to EISDIR. we do too. if it is found
|
// libuv maps this error code to EISDIR. we do too. if it is found
|
||||||
// to be incorrect, we can add in some more machinery to only
|
// to be incorrect, we can add in some more machinery to only
|
||||||
|
|
Loading…
Reference in New Issue