auto merge of #10093 : alexcrichton/rust/issue-8811, r=pcwalton
Closes #8811
This commit is contained in:
commit
672edb21d9
@ -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",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user