test(client): Verify socket read timeout restoration after open()
This commit is contained in:
1 parent
f095eb5930
commit
f1f5dfe541
1 file changed
+24
@@ -476,6 +476,30 @@ mod tests {
|
|||||||
server.join();
|
server.join();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn open_restores_configured_read_timeout_after_timeout() {
|
||||||
|
let server = timeout_server(Duration::from_millis(700));
|
||||||
|
let config = ClientConfig {
|
||||||
|
open_timeouts: vec![Duration::from_millis(200)],
|
||||||
|
socket_config: crate::SocketConfig {
|
||||||
|
recv_timeout: Some(Duration::from_millis(450)),
|
||||||
|
..crate::SocketConfig::default()
|
||||||
|
},
|
||||||
|
..default_test_config(server.addr)
|
||||||
|
};
|
||||||
|
let mut client = Client::connect(config).unwrap();
|
||||||
|
assert!(matches!(
|
||||||
|
client.open(ClientTimestamp::now()),
|
||||||
|
Err(ClientError::OpenTimeout)
|
||||||
|
));
|
||||||
|
|
||||||
|
let start = std::time::Instant::now();
|
||||||
|
let mut buf = [0_u8; 1];
|
||||||
|
assert!(client.socket.recv(&mut buf).is_err());
|
||||||
|
assert!(start.elapsed() >= Duration::from_millis(350));
|
||||||
|
server.join();
|
||||||
|
}
|
||||||
|
|
||||||
fn recv_request_timeout(
|
fn recv_request_timeout(
|
||||||
socket: &UdpSocket,
|
socket: &UdpSocket,
|
||||||
tx: &mpsc::Sender<Vec<u8>>,
|
tx: &mpsc::Sender<Vec<u8>>,
|
||||||
|
|||||||
Reference in new issue
Block a user