tests(client): improve panic message when client tests fail
This commit is contained in:
@@ -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")));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user