Rust CI / cargo fmt (push) Successful in 17s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 34s
Rust CI / cargo clippy (push) Successful in 35s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Failing after 8s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Failing after 10s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m14s
Rust CI / cargo doc (push) Successful in 23s
Fuzz Smoke / cargo fuzz smoke (push) Failing after 29s
Supply chain / cargo-deny advisories (push) Successful in 9s
Supply chain / cargo-deny bans licenses sources (push) Successful in 5s
Supply chain / actionlint (push) Successful in 3s
Netem Interop / netem interop (push) Successful in 1m11s
55 lines
1.4 KiB
Rust
55 lines
1.4 KiB
Rust
use super::*;
|
|
|
|
#[test]
|
|
fn recv_available_drains_burst_replies() {
|
|
let params = default_params();
|
|
let (mut client, server) = open_client_with_echo_server(¶ms);
|
|
|
|
client.send_probe().unwrap();
|
|
client.send_probe().unwrap();
|
|
client.send_probe().unwrap();
|
|
thread::sleep(Duration::from_millis(80));
|
|
|
|
let events = client
|
|
.recv_available(RecvBudget { max_packets: 8 })
|
|
.unwrap();
|
|
assert_eq!(events.len(), 3);
|
|
for (seq, event) in events.iter().enumerate() {
|
|
assert!(matches!(
|
|
event,
|
|
ClientEvent::EchoReply {
|
|
seq: actual_seq,
|
|
..
|
|
} if *actual_seq == seq as u32
|
|
));
|
|
}
|
|
|
|
client.close().unwrap();
|
|
server.join();
|
|
}
|
|
|
|
#[test]
|
|
fn recv_available_respects_packet_budget() {
|
|
let params = default_params();
|
|
let (mut client, server) = open_client_with_echo_server(¶ms);
|
|
|
|
client.send_probe().unwrap();
|
|
client.send_probe().unwrap();
|
|
thread::sleep(Duration::from_millis(80));
|
|
|
|
let first = client
|
|
.recv_available(RecvBudget { max_packets: 1 })
|
|
.unwrap();
|
|
assert_eq!(first.len(), 1);
|
|
assert!(matches!(&first[0], ClientEvent::EchoReply { seq: 0, .. }));
|
|
|
|
let second = client
|
|
.recv_available(RecvBudget { max_packets: 8 })
|
|
.unwrap();
|
|
assert_eq!(second.len(), 1);
|
|
assert!(matches!(&second[0], ClientEvent::EchoReply { seq: 1, .. }));
|
|
|
|
client.close().unwrap();
|
|
server.join();
|
|
}
|