auto merge of #10093 : alexcrichton/rust/issue-8811, r=pcwalton

Closes #8811
This commit is contained in:
bors 2013-10-28 05:36:31 -07:00
commit 672edb21d9
4 changed files with 15 additions and 6 deletions

View File

@ -368,6 +368,7 @@ pub enum IoErrorKind {
Closed,
ConnectionRefused,
ConnectionReset,
ConnectionAborted,
NotConnected,
BrokenPipe,
PathAlreadyExists,
@ -397,6 +398,7 @@ impl ToStr for IoErrorKind {
MismatchedFileTypeForOperation => ~"MismatchedFileTypeForOperation",
IoUnavailable => ~"IoUnavailable",
ResourceUnavailable => ~"ResourceUnavailable",
ConnectionAborted => ~"ConnectionAborted",
}
}
}

View File

@ -364,7 +364,6 @@ mod test {
}
#[test]
#[ignore(cfg(windows))] // FIXME #8811
fn write_close_ip4() {
do run_in_mt_newsched_task {
let addr = next_test_ip4();
@ -380,8 +379,11 @@ mod test {
loop {
let mut stop = false;
do io_error::cond.trap(|e| {
// NB: ECONNRESET on linux, EPIPE on mac
assert!(e.kind == ConnectionReset || e.kind == BrokenPipe);
// NB: ECONNRESET on linux, EPIPE on mac, ECONNABORTED
// on windows
assert!(e.kind == ConnectionReset ||
e.kind == BrokenPipe ||
e.kind == ConnectionAborted);
stop = true;
}).inside {
stream.write(buf);
@ -399,7 +401,6 @@ mod test {
}
#[test]
#[ignore(cfg(windows))] // FIXME #8811
fn write_close_ip6() {
do run_in_mt_newsched_task {
let addr = next_test_ip6();
@ -415,8 +416,11 @@ mod test {
loop {
let mut stop = false;
do io_error::cond.trap(|e| {
// NB: ECONNRESET on linux, EPIPE on mac
assert!(e.kind == ConnectionReset || e.kind == BrokenPipe);
// NB: ECONNRESET on linux, EPIPE on mac, ECONNABORTED
// on windows
assert!(e.kind == ConnectionReset ||
e.kind == BrokenPipe ||
e.kind == ConnectionAborted);
stop = true;
}).inside {
stream.write(buf);

View File

@ -314,6 +314,7 @@ pub fn uv_error_to_io_error(uverr: UvError) -> IoError {
ECONNRESET => ConnectionReset,
ENOTCONN => NotConnected,
EPIPE => BrokenPipe,
ECONNABORTED => ConnectionAborted,
err => {
rtdebug!("uverr.code {}", err as int);
// XXX: Need to map remaining uv error types

View File

@ -55,6 +55,7 @@ pub mod errors {
pub static ECONNRESET: c_int = -4078;
pub static ENOTCONN: c_int = -4054;
pub static EPIPE: c_int = -4048;
pub static ECONNABORTED: c_int = -4080;
}
#[cfg(not(windows))]
pub mod errors {
@ -66,6 +67,7 @@ pub mod errors {
pub static ECONNRESET: c_int = -libc::ECONNRESET;
pub static ENOTCONN: c_int = -libc::ENOTCONN;
pub static EPIPE: c_int = -libc::EPIPE;
pub static ECONNABORTED: c_int = -libc::ECONNABORTED;
}
pub static PROCESS_SETUID: c_int = 1 << 0;