refactor(client): remove redundant timestamp parameter from open method
This commit is contained in:
1 parent
2258509021
commit
023e85741a
16 files changed
+129
-127
No files matched your search
@@ -72,7 +72,7 @@ fn run(args: CliArgs, shutdown_requested: &AtomicBool) -> Result<(), Box<dyn std
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
let open = client.open(ClientTimestamp::now())?;
|
let open = client.open()?;
|
||||||
output.print_event(open_event(&open))?;
|
output.print_event(open_event(&open))?;
|
||||||
|
|
||||||
let mut interrupted = false;
|
let mut interrupted = false;
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ impl Client {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn open(&mut self, now: ClientTimestamp) -> Result<OpenOutcome, ClientError> {
|
pub fn open(&mut self) -> Result<OpenOutcome, ClientError> {
|
||||||
match self.phase {
|
match self.phase {
|
||||||
ClientPhase::Connected => {}
|
ClientPhase::Connected => {}
|
||||||
ClientPhase::Open { .. } => return Err(ClientError::AlreadyOpen),
|
ClientPhase::Open { .. } => return Err(ClientError::AlreadyOpen),
|
||||||
@@ -81,10 +81,44 @@ impl Client {
|
|||||||
ClientPhase::NoTestCompleted => return Err(ClientError::AlreadyCompleted),
|
ClientPhase::NoTestCompleted => return Err(ClientError::AlreadyCompleted),
|
||||||
}
|
}
|
||||||
|
|
||||||
let outcome = self.open_inner(now);
|
let outcome = (|| -> Result<OpenOutcome, ClientError> {
|
||||||
|
let request = OpenRequest {
|
||||||
|
params: self.requested.clone(),
|
||||||
|
close: self.config.run_mode == RunMode::NoTest,
|
||||||
|
};
|
||||||
|
|
||||||
|
let packet = encode_open_request(&request, self.config.hmac_key.as_deref())?;
|
||||||
|
let mut buf = [0_u8; MAX_OPEN_PACKET_SIZE];
|
||||||
|
|
||||||
|
for timeout in &self.config.open_timeouts {
|
||||||
|
self.socket.set_read_timeout(Some(*timeout))?;
|
||||||
|
self.socket.send(&packet)?;
|
||||||
|
|
||||||
|
match self.socket.recv(&mut buf) {
|
||||||
|
Ok(size) => {
|
||||||
|
let reply = irtt_proto::decode_open_reply(
|
||||||
|
&buf[..size],
|
||||||
|
self.config.hmac_key.as_deref(),
|
||||||
|
)?;
|
||||||
|
|
||||||
|
return self.accept_open_reply(reply, ClientTimestamp::now());
|
||||||
|
}
|
||||||
|
Err(err)
|
||||||
|
if matches!(
|
||||||
|
err.kind(),
|
||||||
|
io::ErrorKind::WouldBlock | io::ErrorKind::TimedOut
|
||||||
|
) => {}
|
||||||
|
Err(err) => return Err(ClientError::Socket(err)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Err(ClientError::OpenTimeout)
|
||||||
|
})();
|
||||||
|
|
||||||
let restore = self
|
let restore = self
|
||||||
.socket
|
.socket
|
||||||
.set_read_timeout(self.config.socket_config.recv_timeout);
|
.set_read_timeout(self.config.socket_config.recv_timeout);
|
||||||
|
|
||||||
match (outcome, restore) {
|
match (outcome, restore) {
|
||||||
(Ok(outcome), Ok(())) => Ok(outcome),
|
(Ok(outcome), Ok(())) => Ok(outcome),
|
||||||
(Ok(_), Err(source)) => Err(ClientError::ReadTimeoutRestore { source }),
|
(Ok(_), Err(source)) => Err(ClientError::ReadTimeoutRestore { source }),
|
||||||
@@ -93,38 +127,6 @@ impl Client {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn open_inner(&mut self, _now: ClientTimestamp) -> Result<OpenOutcome, ClientError> {
|
|
||||||
let request = OpenRequest {
|
|
||||||
params: self.requested.clone(),
|
|
||||||
close: self.config.run_mode == RunMode::NoTest,
|
|
||||||
};
|
|
||||||
let packet = encode_open_request(&request, self.config.hmac_key.as_deref())?;
|
|
||||||
let mut buf = [0_u8; MAX_OPEN_PACKET_SIZE];
|
|
||||||
|
|
||||||
for timeout in &self.config.open_timeouts {
|
|
||||||
self.socket.set_read_timeout(Some(*timeout))?;
|
|
||||||
self.socket.send(&packet)?;
|
|
||||||
|
|
||||||
match self.socket.recv(&mut buf) {
|
|
||||||
Ok(size) => {
|
|
||||||
let reply = irtt_proto::decode_open_reply(
|
|
||||||
&buf[..size],
|
|
||||||
self.config.hmac_key.as_deref(),
|
|
||||||
)?;
|
|
||||||
return self.accept_open_reply(reply, ClientTimestamp::now());
|
|
||||||
}
|
|
||||||
Err(err)
|
|
||||||
if matches!(
|
|
||||||
err.kind(),
|
|
||||||
io::ErrorKind::WouldBlock | io::ErrorKind::TimedOut
|
|
||||||
) => {}
|
|
||||||
Err(err) => return Err(ClientError::Socket(err)),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Err(ClientError::OpenTimeout)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn close(&mut self, now: ClientTimestamp) -> Result<Vec<ClientEvent>, ClientError> {
|
pub fn close(&mut self, now: ClientTimestamp) -> Result<Vec<ClientEvent>, ClientError> {
|
||||||
let token = match self.phase {
|
let token = match self.phase {
|
||||||
ClientPhase::Open { token } => token,
|
ClientPhase::Open { token } => token,
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ fn open_fails_after_close() {
|
|||||||
let _ = recv_request(&socket, &tx);
|
let _ = recv_request(&socket, &tx);
|
||||||
});
|
});
|
||||||
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.close(ClientTimestamp::now()).unwrap();
|
client.close(ClientTimestamp::now()).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::AlreadyClosed)
|
Err(ClientError::AlreadyClosed)
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
@@ -31,7 +31,7 @@ fn close_sends_one_close_packet_with_negotiated_token() {
|
|||||||
let _ = recv_request(&socket, &tx);
|
let _ = recv_request(&socket, &tx);
|
||||||
});
|
});
|
||||||
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
let events = client.close(ClientTimestamp::now()).unwrap();
|
let events = client.close(ClientTimestamp::now()).unwrap();
|
||||||
assert_eq!(events.len(), 1);
|
assert_eq!(events.len(), 1);
|
||||||
let packets: Vec<_> = server.rx.iter().take(2).collect();
|
let packets: Vec<_> = server.rx.iter().take(2).collect();
|
||||||
@@ -62,7 +62,7 @@ fn send_probe_fails_after_close() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.close(ClientTimestamp::now()).unwrap();
|
client.close(ClientTimestamp::now()).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.send_probe(),
|
client.send_probe(),
|
||||||
@@ -84,7 +84,7 @@ fn close_clears_timed_out_metadata() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(60));
|
thread::sleep(Duration::from_millis(60));
|
||||||
@@ -132,7 +132,7 @@ fn close_flagged_echo_reply_emits_reply_then_closes_without_sending_close() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
|
|
||||||
let events = client.recv_once().unwrap();
|
let events = client.recv_once().unwrap();
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ fn normal_open_applies_negotiated_dscp_after_open_and_close_clears_it() {
|
|||||||
socket_traffic_class(&client.socket, client.remote).unwrap() & 0xfc,
|
socket_traffic_class(&client.socket, client.remote).unwrap() & 0xfc,
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
socket_traffic_class(&client.socket, client.remote).unwrap() & 0xfc,
|
socket_traffic_class(&client.socket, client.remote).unwrap() & 0xfc,
|
||||||
184
|
184
|
||||||
@@ -58,7 +58,7 @@ fn normal_open_uses_negotiated_dscp_not_requested_dscp() {
|
|||||||
config.negotiation_policy = NegotiationPolicy::Loose;
|
config.negotiation_policy = NegotiationPolicy::Loose;
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
|
|
||||||
let negotiated = assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
let negotiated = assert_open_started(client.open().unwrap());
|
||||||
assert_eq!(negotiated.params.dscp, 0);
|
assert_eq!(negotiated.params.dscp, 0);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
socket_traffic_class(&client.socket, client.remote).unwrap(),
|
socket_traffic_class(&client.socket, client.remote).unwrap(),
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ fn hmac_open_success() {
|
|||||||
});
|
});
|
||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
server.join();
|
server.join();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@ fn hmac_open_rejects_missing_hmac() {
|
|||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::Protocol(
|
Err(ClientError::Protocol(
|
||||||
irtt_proto::ProtoError::HmacPresenceMismatch
|
irtt_proto::ProtoError::HmacPresenceMismatch
|
||||||
))
|
))
|
||||||
@@ -55,7 +55,7 @@ fn hmac_open_rejects_bad_hmac() {
|
|||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::Protocol(irtt_proto::ProtoError::BadHmac))
|
Err(ClientError::Protocol(irtt_proto::ProtoError::BadHmac))
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
@@ -76,7 +76,7 @@ fn hmac_close_packet_includes_valid_hmac() {
|
|||||||
});
|
});
|
||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.close(ClientTimestamp::now()).unwrap();
|
client.close(ClientTimestamp::now()).unwrap();
|
||||||
let packets: Vec<_> = server.rx.iter().take(2).collect();
|
let packets: Vec<_> = server.rx.iter().take(2).collect();
|
||||||
let close = &packets[1];
|
let close = &packets[1];
|
||||||
@@ -125,7 +125,7 @@ fn bad_hmac_reply_is_dropped() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(30));
|
thread::sleep(Duration::from_millis(30));
|
||||||
let events = client.recv_once().unwrap();
|
let events = client.recv_once().unwrap();
|
||||||
@@ -174,7 +174,7 @@ fn hmac_echo_request_reply_works() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(50));
|
thread::sleep(Duration::from_millis(50));
|
||||||
let events = client.recv_once().unwrap();
|
let events = client.recv_once().unwrap();
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ fn no_test_open_close_succeeds_on_open_reply_close() {
|
|||||||
let server = no_test_server(params.clone(), 0);
|
let server = no_test_server(params.clone(), 0);
|
||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
let negotiated = assert_no_test_completed(client.open(ClientTimestamp::now()).unwrap());
|
let negotiated = assert_no_test_completed(client.open().unwrap());
|
||||||
assert_eq!(negotiated.params, params);
|
assert_eq!(negotiated.params, params);
|
||||||
assert_eq!(client.negotiated.as_ref(), Some(&negotiated));
|
assert_eq!(client.negotiated.as_ref(), Some(&negotiated));
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
@@ -26,7 +26,7 @@ fn no_test_success_validates_params() {
|
|||||||
let server = no_test_server(params.clone(), 0);
|
let server = no_test_server(params.clone(), 0);
|
||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
let negotiated = assert_no_test_completed(client.open(ClientTimestamp::now()).unwrap());
|
let negotiated = assert_no_test_completed(client.open().unwrap());
|
||||||
assert_eq!(negotiated.params, params);
|
assert_eq!(negotiated.params, params);
|
||||||
server.join();
|
server.join();
|
||||||
}
|
}
|
||||||
@@ -40,7 +40,7 @@ fn no_test_rejects_non_close_open_reply() {
|
|||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::UnexpectedNoTestReply)
|
Err(ClientError::UnexpectedNoTestReply)
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
@@ -55,7 +55,7 @@ fn no_test_rejects_non_zero_token_with_close_reply() {
|
|||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::NonZeroNoTestToken { token: TOKEN })
|
Err(ClientError::NonZeroNoTestToken { token: TOKEN })
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
@@ -71,7 +71,7 @@ fn no_test_strict_negotiation_rejects_changed_params() {
|
|||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::NegotiationRejected { .. })
|
Err(ClientError::NegotiationRejected { .. })
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
@@ -87,7 +87,7 @@ fn no_test_loose_negotiation_accepts_restricted_params() {
|
|||||||
let server = no_test_server(params.clone(), 0);
|
let server = no_test_server(params.clone(), 0);
|
||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
let negotiated = assert_no_test_completed(client.open(ClientTimestamp::now()).unwrap());
|
let negotiated = assert_no_test_completed(client.open().unwrap());
|
||||||
assert_eq!(negotiated.params, params);
|
assert_eq!(negotiated.params, params);
|
||||||
server.join();
|
server.join();
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@ fn send_probe_fails_after_no_test_completed() {
|
|||||||
let server = no_test_server(params, 0);
|
let server = no_test_server(params, 0);
|
||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_no_test_completed(client.open(ClientTimestamp::now()).unwrap());
|
assert_no_test_completed(client.open().unwrap());
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.send_probe(),
|
client.send_probe(),
|
||||||
Err(ClientError::AlreadyCompleted)
|
Err(ClientError::AlreadyCompleted)
|
||||||
@@ -116,9 +116,9 @@ fn open_fails_after_no_test_completed() {
|
|||||||
let server = no_test_server(params, 0);
|
let server = no_test_server(params, 0);
|
||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_no_test_completed(client.open(ClientTimestamp::now()).unwrap());
|
assert_no_test_completed(client.open().unwrap());
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::AlreadyCompleted)
|
Err(ClientError::AlreadyCompleted)
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ fn successful_open_handshake() {
|
|||||||
let server = open_success_server(params.clone());
|
let server = open_success_server(params.clone());
|
||||||
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
||||||
|
|
||||||
let negotiated = assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
let negotiated = assert_open_started(client.open().unwrap());
|
||||||
assert_eq!(negotiated.params, params);
|
assert_eq!(negotiated.params, params);
|
||||||
assert!(matches!(client.phase, ClientPhase::Open { token: TOKEN }));
|
assert!(matches!(client.phase, ClientPhase::Open { token: TOKEN }));
|
||||||
server.join();
|
server.join();
|
||||||
@@ -30,9 +30,9 @@ fn open_fails_when_already_open() {
|
|||||||
let params = params_from_config(&config).unwrap();
|
let params = params_from_config(&config).unwrap();
|
||||||
let server = open_success_server(params);
|
let server = open_success_server(params);
|
||||||
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::AlreadyOpen)
|
Err(ClientError::AlreadyOpen)
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
@@ -53,7 +53,7 @@ fn open_retries_after_first_timeout() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
let outcome = client.open(ClientTimestamp::now()).unwrap();
|
let outcome = client.open().unwrap();
|
||||||
assert_open_started(outcome);
|
assert_open_started(outcome);
|
||||||
assert_eq!(server.rx.iter().take(2).count(), 2);
|
assert_eq!(server.rx.iter().take(2).count(), 2);
|
||||||
server.join();
|
server.join();
|
||||||
@@ -68,7 +68,7 @@ fn open_timeout_after_all_timeouts() {
|
|||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::OpenTimeout)
|
Err(ClientError::OpenTimeout)
|
||||||
));
|
));
|
||||||
assert_eq!(server.rx.iter().take(2).count(), 2);
|
assert_eq!(server.rx.iter().take(2).count(), 2);
|
||||||
@@ -88,7 +88,7 @@ fn open_restores_configured_read_timeout_after_timeout() {
|
|||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::OpenTimeout)
|
Err(ClientError::OpenTimeout)
|
||||||
));
|
));
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ fn protocol_version_mismatch_fails() {
|
|||||||
let server = open_success_server(params);
|
let server = open_success_server(params);
|
||||||
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::ProtocolVersionMismatch { received: 2, .. })
|
Err(ClientError::ProtocolVersionMismatch { received: 2, .. })
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
@@ -125,7 +125,7 @@ fn server_rejection_fails_in_normal_mode() {
|
|||||||
});
|
});
|
||||||
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::ServerRejected)
|
Err(ClientError::ServerRejected)
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ fn send_probe_sends_valid_echo_request() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
let events = client.send_probe().unwrap();
|
let events = client.send_probe().unwrap();
|
||||||
assert_eq!(events.len(), 1);
|
assert_eq!(events.len(), 1);
|
||||||
match &events[0] {
|
match &events[0] {
|
||||||
@@ -89,7 +89,7 @@ fn echo_sent_reports_schedule_and_timer_error() {
|
|||||||
mono: Instant::now(),
|
mono: Instant::now(),
|
||||||
wall: SystemTime::now(),
|
wall: SystemTime::now(),
|
||||||
};
|
};
|
||||||
assert_open_started(client.open(start).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
let session_start = client.session.as_ref().unwrap().start_mono;
|
let session_start = client.session.as_ref().unwrap().start_mono;
|
||||||
assert!(
|
assert!(
|
||||||
session_start >= start.mono,
|
session_start >= start.mono,
|
||||||
@@ -131,7 +131,7 @@ fn send_probe_starts_seq_at_zero_and_increments() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
@@ -172,7 +172,7 @@ fn send_probe_respects_finite_duration_exclusive_end() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
let session = client.session.as_ref().unwrap();
|
let session = client.session.as_ref().unwrap();
|
||||||
let start = session.start_mono;
|
let start = session.start_mono;
|
||||||
@@ -225,7 +225,7 @@ fn continuous_duration_keeps_generating_send_deadlines() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
let start = client.session.as_ref().unwrap().start_mono;
|
let start = client.session.as_ref().unwrap().start_mono;
|
||||||
let interval = Duration::from_millis(500);
|
let interval = Duration::from_millis(500);
|
||||||
@@ -301,7 +301,7 @@ fn send_probe_reports_schedule_overflow() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.session.as_mut().unwrap().packets_sent = u64::MAX - 1;
|
client.session.as_mut().unwrap().packets_sent = u64::MAX - 1;
|
||||||
|
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
@@ -323,7 +323,7 @@ fn send_probe_reports_logical_sequence_counter_overflow() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.session.as_mut().unwrap().next_logical_seq = u64::MAX;
|
client.session.as_mut().unwrap().next_logical_seq = u64::MAX;
|
||||||
|
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
@@ -347,7 +347,7 @@ fn send_probe_reports_packets_sent_counter_overflow() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.session.as_mut().unwrap().packets_sent = u64::MAX;
|
client.session.as_mut().unwrap().packets_sent = u64::MAX;
|
||||||
|
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
@@ -371,7 +371,7 @@ fn recv_once_returns_empty_on_timeout() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
let events = client.recv_once().unwrap();
|
let events = client.recv_once().unwrap();
|
||||||
assert!(events.is_empty());
|
assert!(events.is_empty());
|
||||||
server.join();
|
server.join();
|
||||||
@@ -477,7 +477,7 @@ fn recv_once_decodes_only_received_bytes_after_longer_datagram() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
@@ -550,7 +550,7 @@ fn echo_reply_metadata_propagates_observed_dscp_with_ancillary() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(50));
|
thread::sleep(Duration::from_millis(50));
|
||||||
@@ -757,7 +757,7 @@ fn wrong_token_reply_is_dropped() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(30));
|
thread::sleep(Duration::from_millis(30));
|
||||||
let events = client.recv_once().unwrap();
|
let events = client.recv_once().unwrap();
|
||||||
@@ -796,7 +796,7 @@ fn duplicate_reply_emits_duplicate_event() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(50));
|
thread::sleep(Duration::from_millis(50));
|
||||||
|
|
||||||
@@ -850,7 +850,7 @@ fn out_of_order_reply_emits_late_event() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(50));
|
thread::sleep(Duration::from_millis(50));
|
||||||
@@ -891,7 +891,7 @@ fn poll_timeouts_emits_echo_loss() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
@@ -921,7 +921,7 @@ fn poll_timeouts_removes_expired_pending() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(150));
|
thread::sleep(Duration::from_millis(150));
|
||||||
@@ -967,7 +967,7 @@ fn late_reply_after_timeout_preserves_measurement_metadata() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(60));
|
thread::sleep(Duration::from_millis(60));
|
||||||
@@ -1046,7 +1046,7 @@ fn late_reply_metadata_is_unavailable_without_ancillary() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(60));
|
thread::sleep(Duration::from_millis(60));
|
||||||
@@ -1095,7 +1095,7 @@ fn late_reply_metadata_propagates_observed_dscp_with_ancillary() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(60));
|
thread::sleep(Duration::from_millis(60));
|
||||||
@@ -1149,7 +1149,7 @@ fn pending_map_bounded() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
@@ -1199,7 +1199,7 @@ fn minimal_negotiated_layout_works() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(30));
|
thread::sleep(Duration::from_millis(30));
|
||||||
let events = client.recv_once().unwrap();
|
let events = client.recv_once().unwrap();
|
||||||
@@ -1253,7 +1253,7 @@ fn late_reply_with_pending_preserves_rtt() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
@@ -1296,7 +1296,7 @@ fn pending_full_does_not_send_packet() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
@@ -1361,7 +1361,7 @@ fn unmatched_future_reply_emits_warning_not_late() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(50));
|
thread::sleep(Duration::from_millis(50));
|
||||||
|
|
||||||
@@ -1419,7 +1419,7 @@ fn unmatched_future_reply_does_not_update_highest_received_seq() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
thread::sleep(Duration::from_millis(50));
|
thread::sleep(Duration::from_millis(50));
|
||||||
@@ -1523,7 +1523,7 @@ fn matched_reply_with_reversed_monotonic_time_still_emits_event() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
let base = Instant::now() + Duration::from_secs(1);
|
let base = Instant::now() + Duration::from_secs(1);
|
||||||
let send_ts = ClientTimestamp {
|
let send_ts = ClientTimestamp {
|
||||||
@@ -1566,7 +1566,7 @@ fn process_received_packet_uses_supplied_receive_metadata() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
client.send_probe_at(ClientTimestamp::now()).unwrap();
|
client.send_probe_at(ClientTimestamp::now()).unwrap();
|
||||||
let recv_ts = ClientTimestamp::now();
|
let recv_ts = ClientTimestamp::now();
|
||||||
@@ -1613,7 +1613,7 @@ fn process_received_packet_uses_supplied_receive_metadata_for_late_reply() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
client.send_probe_at(ClientTimestamp::now()).unwrap();
|
client.send_probe_at(ClientTimestamp::now()).unwrap();
|
||||||
thread::sleep(Duration::from_millis(60));
|
thread::sleep(Duration::from_millis(60));
|
||||||
@@ -1663,7 +1663,7 @@ fn receive_metadata_does_not_broaden_malformed_warning() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
let events = client
|
let events = client
|
||||||
.process_received_packet(
|
.process_received_packet(
|
||||||
@@ -1754,7 +1754,7 @@ fn send_probe_wraps_wire_sequence_at_u32_max() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
let session = client.session.as_mut().unwrap();
|
let session = client.session.as_mut().unwrap();
|
||||||
session.next_wire_seq = u32::MAX;
|
session.next_wire_seq = u32::MAX;
|
||||||
@@ -1811,7 +1811,7 @@ fn wrapped_reply_after_u32_max_is_not_late() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
let session = client.session.as_mut().unwrap();
|
let session = client.session.as_mut().unwrap();
|
||||||
session.next_wire_seq = u32::MAX;
|
session.next_wire_seq = u32::MAX;
|
||||||
session.next_logical_seq = 41;
|
session.next_logical_seq = 41;
|
||||||
@@ -1848,7 +1848,7 @@ fn send_probe_after_sending_done_is_noop() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
|
|
||||||
client.session.as_mut().unwrap().sending_done = true;
|
client.session.as_mut().unwrap().sending_done = true;
|
||||||
let events = client.send_probe().unwrap();
|
let events = client.send_probe().unwrap();
|
||||||
@@ -1926,7 +1926,7 @@ fn recv_buffer_uses_negotiated_packet_length() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
let buf_size = client.recv_buffer_size();
|
let buf_size = client.recv_buffer_size();
|
||||||
assert!(
|
assert!(
|
||||||
buf_size > 4096,
|
buf_size > 4096,
|
||||||
@@ -1954,7 +1954,7 @@ fn short_echo_reply_does_not_emit_echo_reply() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
|
|
||||||
let mut packet = echo_reply_packet(TOKEN, 0, ¶ms, &TimestampFields::default(), None);
|
let mut packet = echo_reply_packet(TOKEN, 0, ¶ms, &TimestampFields::default(), None);
|
||||||
@@ -1986,7 +1986,7 @@ fn overlong_echo_reply_does_not_emit_echo_reply() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
|
|
||||||
let mut packet = echo_reply_packet(TOKEN, 0, ¶ms, &TimestampFields::default(), None);
|
let mut packet = echo_reply_packet(TOKEN, 0, ¶ms, &TimestampFields::default(), None);
|
||||||
@@ -2036,7 +2036,7 @@ fn overlong_datagram_detection_uses_extra_receive_byte() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
client.recv_buffer.len(),
|
client.recv_buffer.len(),
|
||||||
echo_packet_len(false, ¶ms) + 1
|
echo_packet_len(false, ¶ms) + 1
|
||||||
@@ -2083,7 +2083,7 @@ fn exact_length_echo_reply_still_emits_echo_reply() {
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
|
|
||||||
let events = client.recv_once().unwrap();
|
let events = client.recv_once().unwrap();
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ pub(super) fn open_client_with_echo_server(params: &Params) -> (Client, FakeServ
|
|||||||
..default_test_config(server.addr)
|
..default_test_config(server.addr)
|
||||||
};
|
};
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
|
assert_open_started(client.open().unwrap());
|
||||||
(client, server)
|
(client, server)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ fn connect_applies_configured_ipv4_ttl_before_open_and_close_preserves_it() {
|
|||||||
|
|
||||||
assert_eq!(socket_ttl(&client.socket, client.remote).unwrap(), 64);
|
assert_eq!(socket_ttl(&client.socket, client.remote).unwrap(), 64);
|
||||||
|
|
||||||
client.open(ClientTimestamp::now()).unwrap();
|
client.open().unwrap();
|
||||||
server.join();
|
server.join();
|
||||||
|
|
||||||
client.close(ClientTimestamp::now()).unwrap();
|
client.close(ClientTimestamp::now()).unwrap();
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ impl ManagedClient {
|
|||||||
.transpose()?;
|
.transpose()?;
|
||||||
|
|
||||||
let mut client = Client::connect(config)?;
|
let mut client = Client::connect(config)?;
|
||||||
let outcome = client.open(ClientTimestamp::now())?;
|
let outcome = client.open()?;
|
||||||
publish_open_outcome(&hub, &outcome);
|
publish_open_outcome(&hub, &outcome);
|
||||||
|
|
||||||
let cancellation = CancellationToken::new();
|
let cancellation = CancellationToken::new();
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ fn hmac_close_success_sends_authenticated_close_and_closes_session() {
|
|||||||
config.hmac_key = Some(key);
|
config.hmac_key = Some(key);
|
||||||
|
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
let outcome = client.open(ClientTimestamp::now()).unwrap();
|
let outcome = client.open().unwrap();
|
||||||
assert_started(outcome, ¶ms);
|
assert_started(outcome, ¶ms);
|
||||||
|
|
||||||
let events = client.close(ClientTimestamp::now()).unwrap();
|
let events = client.close(ClientTimestamp::now()).unwrap();
|
||||||
@@ -132,7 +132,7 @@ fn missing_client_key_against_hmac_required_server_times_out() {
|
|||||||
|
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::OpenTimeout)
|
Err(ClientError::OpenTimeout)
|
||||||
));
|
));
|
||||||
|
|
||||||
@@ -157,7 +157,7 @@ fn wrong_client_key_against_hmac_required_server_times_out() {
|
|||||||
|
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::OpenTimeout)
|
Err(ClientError::OpenTimeout)
|
||||||
));
|
));
|
||||||
|
|
||||||
@@ -185,7 +185,7 @@ fn bad_hmac_echo_reply_is_rejected_without_echo_reply_event() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
let outcome = client.open(ClientTimestamp::now()).unwrap();
|
let outcome = client.open().unwrap();
|
||||||
assert_started(outcome, ¶ms);
|
assert_started(outcome, ¶ms);
|
||||||
|
|
||||||
let sent = client.send_probe().unwrap();
|
let sent = client.send_probe().unwrap();
|
||||||
@@ -229,7 +229,7 @@ fn hmac_open_reply_with_bad_hmac_fails_with_protocol_error() {
|
|||||||
|
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::Protocol(ProtoError::BadHmac))
|
Err(ClientError::Protocol(ProtoError::BadHmac))
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
@@ -247,7 +247,7 @@ fn non_hmac_client_open_does_not_set_hmac_flag() {
|
|||||||
config.hmac_key = None;
|
config.hmac_key = None;
|
||||||
|
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
let outcome = client.open(ClientTimestamp::now()).unwrap();
|
let outcome = client.open().unwrap();
|
||||||
assert_started(outcome, ¶ms);
|
assert_started(outcome, ¶ms);
|
||||||
|
|
||||||
let observations = server.observations(1);
|
let observations = server.observations(1);
|
||||||
@@ -304,7 +304,7 @@ fn backend_hmac_correct_key_succeeds() {
|
|||||||
config.hmac_key = Some(key);
|
config.hmac_key = Some(key);
|
||||||
|
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
let outcome = client.open(ClientTimestamp::now()).unwrap();
|
let outcome = client.open().unwrap();
|
||||||
assert!(matches!(outcome, OpenOutcome::Started { .. }));
|
assert!(matches!(outcome, OpenOutcome::Started { .. }));
|
||||||
|
|
||||||
let sent = client.send_probe().unwrap();
|
let sent = client.send_probe().unwrap();
|
||||||
@@ -327,7 +327,7 @@ fn backend_hmac_wrong_key_fails() {
|
|||||||
|
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::OpenTimeout)
|
Err(ClientError::OpenTimeout)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
@@ -342,7 +342,7 @@ fn backend_hmac_missing_key_fails() {
|
|||||||
|
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::OpenTimeout)
|
Err(ClientError::OpenTimeout)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
@@ -128,7 +128,7 @@ fn backend_large_packet_smoke() {
|
|||||||
})
|
})
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let outcome = client.open(ClientTimestamp::now()).unwrap();
|
let outcome = client.open().unwrap();
|
||||||
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
|
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
|
||||||
|
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ fn strict_open_rejects_changed_compatibility_params_from_server() {
|
|||||||
config.server_addr = server.addr.to_string();
|
config.server_addr = server.addr.to_string();
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(irtt_client::ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::NegotiationRejected { .. })
|
Err(ClientError::NegotiationRejected { .. })
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
@@ -379,7 +379,7 @@ fn backend_basic_open_echo_close() {
|
|||||||
let peer = BackendPeer::start_open_echo(params.clone(), None);
|
let peer = BackendPeer::start_open_echo(params.clone(), None);
|
||||||
let mut client = Client::connect(config_for_params(peer.addr(), ¶ms)).unwrap();
|
let mut client = Client::connect(config_for_params(peer.addr(), ¶ms)).unwrap();
|
||||||
|
|
||||||
let outcome = client.open(ClientTimestamp::now()).unwrap();
|
let outcome = client.open().unwrap();
|
||||||
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
|
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
|
||||||
|
|
||||||
let sent = client.send_probe().unwrap();
|
let sent = client.send_probe().unwrap();
|
||||||
@@ -400,7 +400,7 @@ fn backend_ttl_smoke() {
|
|||||||
config.socket_config.ttl = Some(64);
|
config.socket_config.ttl = Some(64);
|
||||||
let mut client = Client::connect(config).unwrap();
|
let mut client = Client::connect(config).unwrap();
|
||||||
|
|
||||||
let outcome = client.open(ClientTimestamp::now()).unwrap();
|
let outcome = client.open().unwrap();
|
||||||
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
|
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
|
||||||
|
|
||||||
let sent = client.send_probe().unwrap();
|
let sent = client.send_probe().unwrap();
|
||||||
@@ -420,7 +420,7 @@ fn dscp_configured_open_close_smoke() {
|
|||||||
let server = start_open_server(params.clone(), None);
|
let server = start_open_server(params.clone(), None);
|
||||||
let mut client = Client::connect(config_for_params(server.addr, ¶ms)).unwrap();
|
let mut client = Client::connect(config_for_params(server.addr, ¶ms)).unwrap();
|
||||||
|
|
||||||
let outcome = client.open(ClientTimestamp::now()).unwrap();
|
let outcome = client.open().unwrap();
|
||||||
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
|
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
|
||||||
client.close(ClientTimestamp::now()).unwrap();
|
client.close(ClientTimestamp::now()).unwrap();
|
||||||
server.join();
|
server.join();
|
||||||
@@ -438,7 +438,7 @@ fn backend_received_stats_smoke() {
|
|||||||
let peer = BackendPeer::start_open_echo(params.clone(), None);
|
let peer = BackendPeer::start_open_echo(params.clone(), None);
|
||||||
let mut client = Client::connect(config_for_params(peer.addr(), ¶ms)).unwrap();
|
let mut client = Client::connect(config_for_params(peer.addr(), ¶ms)).unwrap();
|
||||||
|
|
||||||
client.open(ClientTimestamp::now()).unwrap();
|
client.open().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
let events = client.recv_once().unwrap();
|
let events = client.recv_once().unwrap();
|
||||||
assert_eq!(events.len(), 1);
|
assert_eq!(events.len(), 1);
|
||||||
@@ -461,7 +461,7 @@ fn backend_timestamp_smoke() {
|
|||||||
let peer = BackendPeer::start_open_echo(params.clone(), None);
|
let peer = BackendPeer::start_open_echo(params.clone(), None);
|
||||||
let mut client = Client::connect(config_for_params(peer.addr(), ¶ms)).unwrap();
|
let mut client = Client::connect(config_for_params(peer.addr(), ¶ms)).unwrap();
|
||||||
|
|
||||||
client.open(ClientTimestamp::now()).unwrap();
|
client.open().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
let events = client.recv_once().unwrap();
|
let events = client.recv_once().unwrap();
|
||||||
assert_eq!(events.len(), 1);
|
assert_eq!(events.len(), 1);
|
||||||
@@ -508,7 +508,7 @@ fn backend_clock_smoke() {
|
|||||||
let peer = BackendPeer::start_open_echo(params.clone(), None);
|
let peer = BackendPeer::start_open_echo(params.clone(), None);
|
||||||
let mut client = Client::connect(config_for_params(peer.addr(), ¶ms)).unwrap();
|
let mut client = Client::connect(config_for_params(peer.addr(), ¶ms)).unwrap();
|
||||||
|
|
||||||
client.open(ClientTimestamp::now()).unwrap();
|
client.open().unwrap();
|
||||||
client.send_probe().unwrap();
|
client.send_probe().unwrap();
|
||||||
let events = client.recv_once().unwrap();
|
let events = client.recv_once().unwrap();
|
||||||
assert_eq!(events.len(), 1);
|
assert_eq!(events.len(), 1);
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ fn server_fill_strict_rejects_removed_fill() {
|
|||||||
let server = start_open_server(returned, None);
|
let server = start_open_server(returned, None);
|
||||||
let mut client = Client::connect(config_for_params(server.addr, &requested)).unwrap();
|
let mut client = Client::connect(config_for_params(server.addr, &requested)).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::NegotiationRejected { .. })
|
Err(ClientError::NegotiationRejected { .. })
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
@@ -129,7 +129,7 @@ fn server_fill_strict_rejects_different_fill_value() {
|
|||||||
let server = start_open_server(returned, None);
|
let server = start_open_server(returned, None);
|
||||||
let mut client = Client::connect(config_for_params(server.addr, &requested)).unwrap();
|
let mut client = Client::connect(config_for_params(server.addr, &requested)).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::NegotiationRejected { .. })
|
Err(ClientError::NegotiationRejected { .. })
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
@@ -145,7 +145,7 @@ fn server_fill_strict_rejects_unexpected_fill_from_server() {
|
|||||||
let server = start_open_server(returned, None);
|
let server = start_open_server(returned, None);
|
||||||
let mut client = Client::connect(config_for_params(server.addr, &requested)).unwrap();
|
let mut client = Client::connect(config_for_params(server.addr, &requested)).unwrap();
|
||||||
assert!(matches!(
|
assert!(matches!(
|
||||||
client.open(ClientTimestamp::now()),
|
client.open(),
|
||||||
Err(ClientError::NegotiationRejected { .. })
|
Err(ClientError::NegotiationRejected { .. })
|
||||||
));
|
));
|
||||||
server.join();
|
server.join();
|
||||||
|
|||||||
@@ -216,7 +216,7 @@ where
|
|||||||
{
|
{
|
||||||
let server = start_one_probe_server(server_params, timestamps, hmac_key);
|
let server = start_one_probe_server(server_params, timestamps, hmac_key);
|
||||||
let mut client = Client::connect(build_config(server.addr)).unwrap();
|
let mut client = Client::connect(build_config(server.addr)).unwrap();
|
||||||
let negotiated = assert_started(client.open(ClientTimestamp::now()).unwrap());
|
let negotiated = assert_started(client.open().unwrap());
|
||||||
|
|
||||||
let sent_events = client.send_probe().unwrap();
|
let sent_events = client.send_probe().unwrap();
|
||||||
assert_eq!(sent_events.len(), 1);
|
assert_eq!(sent_events.len(), 1);
|
||||||
|
|||||||
Reference in new issue
Block a user