fix flaky redirect test when first read doesn't include full body
This commit is contained in:
		| @@ -36,6 +36,9 @@ pub fn spawn(txns: Vec<Txn>) -> Server { | |||||||
|             let mut expected = txn.request; |             let mut expected = txn.request; | ||||||
|             let reply = txn.response; |             let reply = txn.response; | ||||||
|             let (mut socket, _addr) = listener.accept().unwrap(); |             let (mut socket, _addr) = listener.accept().unwrap(); | ||||||
|  |  | ||||||
|  |             socket.set_read_timeout(Some(Duration::from_secs(5))).unwrap(); | ||||||
|  |  | ||||||
|             replace_expected_vars(&mut expected, addr.to_string().as_ref(), DEFAULT_USER_AGENT.as_ref()); |             replace_expected_vars(&mut expected, addr.to_string().as_ref(), DEFAULT_USER_AGENT.as_ref()); | ||||||
|  |  | ||||||
|             if let Some(dur) = txn.read_timeout { |             if let Some(dur) = txn.read_timeout { | ||||||
| @@ -43,7 +46,12 @@ pub fn spawn(txns: Vec<Txn>) -> Server { | |||||||
|             } |             } | ||||||
|  |  | ||||||
|             let mut buf = [0; 4096]; |             let mut buf = [0; 4096]; | ||||||
|             let n = socket.read(&mut buf).unwrap(); |             assert!(buf.len() >= expected.len()); | ||||||
|  |  | ||||||
|  |             let mut n = 0; | ||||||
|  |             while n < expected.len() { | ||||||
|  |                 n += socket.read(&mut buf).unwrap(); | ||||||
|  |             } | ||||||
|  |  | ||||||
|             match (::std::str::from_utf8(&expected), ::std::str::from_utf8(&buf[..n])) { |             match (::std::str::from_utf8(&expected), ::std::str::from_utf8(&buf[..n])) { | ||||||
|                 (Ok(expected), Ok(received)) => assert_eq!(expected, received), |                 (Ok(expected), Ok(received)) => assert_eq!(expected, received), | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user