tests(client): improve panic message when client tests fail

This commit is contained in:
Sean McArthur
2017-09-11 17:49:59 -07:00
parent 3dc2228929
commit 21de6b6cbf

View File

@@ -68,7 +68,9 @@ macro_rules! test {
let (tx, rx) = oneshot::channel(); let (tx, rx) = oneshot::channel();
thread::spawn(move || { let thread = thread::Builder::new()
.name(format!("tcp-server<{}>", stringify!($name)));
thread.spawn(move || {
let mut inc = server.accept().unwrap().0; let mut inc = server.accept().unwrap().0;
inc.set_read_timeout(Some(Duration::from_secs(5))).unwrap(); inc.set_read_timeout(Some(Duration::from_secs(5))).unwrap();
inc.set_write_timeout(Some(Duration::from_secs(5))).unwrap(); inc.set_write_timeout(Some(Duration::from_secs(5))).unwrap();
@@ -76,13 +78,16 @@ macro_rules! test {
let mut buf = [0; 4096]; let mut buf = [0; 4096];
let mut n = 0; let mut n = 0;
while n < buf.len() && n < expected.len() { while n < buf.len() && n < expected.len() {
n += inc.read(&mut buf[n..]).unwrap(); n += match inc.read(&mut buf[n..]) {
Ok(n) => n,
Err(e) => panic!("failed to read request, partialy read = {:?}, error: {}", s(&buf[..n]), e),
};
} }
assert_eq!(s(&buf[..n]), expected); assert_eq!(s(&buf[..n]), expected);
inc.write_all($server_reply.as_ref()).unwrap(); inc.write_all($server_reply.as_ref()).unwrap();
let _ = tx.send(()); let _ = tx.send(());
}); }).unwrap();
let rx = rx.map_err(|_| hyper::Error::Io(io::Error::new(io::ErrorKind::Other, "thread panicked"))); let rx = rx.map_err(|_| hyper::Error::Io(io::Error::new(io::ErrorKind::Other, "thread panicked")));