test(client): unify fake and real backend testing via BackendPeer

Introduce a BackendPeer abstraction to transparently switch between fake and real IRTT backends. This simplifies test logic by removing manual skip checks and providing a consistent interface for server lifecycle management.
This commit is contained in:
Nils Andreas Svee committed 2026-05-04 17:16:23 +07:00
1 parent a715842e38
commit 0262a2af0c
4 files changed
+188 -78

No files matched your search

+12 -22
View File
@@ -9,10 +9,9 @@ use irtt_client::{
use irtt_proto::{echo_packet_len, ProtoError, TimestampFields};
use support::{
config_for_params, default_params, params_for_modes, require_real_backend,
run_one_probe_with_config, standard_timestamps, start_bad_hmac_echo_reply_server,
start_hmac_close_server, start_hmac_required_open_drop_server, RealIrtServer,
ServerObservation, TOKEN,
config_for_params, default_params, params_for_modes, run_one_probe_with_config,
standard_timestamps, start_bad_hmac_echo_reply_server, start_hmac_close_server,
start_hmac_required_open_drop_server, BackendPeer, ServerObservation, TOKEN,
};
#[test]
@@ -297,14 +296,11 @@ fn assert_no_duplicate_late_or_warning(events: &[ClientEvent]) {
}
#[test]
fn real_hmac_correct_key_succeeds() {
if !require_real_backend() {
return;
}
fn backend_hmac_correct_key_succeeds() {
let key = b"compat-secret".to_vec();
let server = RealIrtServer::start(Some(&key)).unwrap();
let params = default_params();
let mut config = config_for_params(server.addr(), &params);
let peer = BackendPeer::start_open_echo(params.clone(), Some(key.clone()));
let mut config = config_for_params(peer.addr(), &params);
config.hmac_key = Some(key);
let mut client = Client::connect(config).unwrap();
@@ -322,13 +318,10 @@ fn real_hmac_correct_key_succeeds() {
}
#[test]
fn real_hmac_wrong_key_fails() {
if !require_real_backend() {
return;
}
fn backend_hmac_wrong_key_fails() {
let server_key = b"compat-secret".to_vec();
let server = RealIrtServer::start(Some(&server_key)).unwrap();
let mut config = config_for_params(server.addr(), &default_params());
let peer = BackendPeer::start_hmac_required(server_key);
let mut config = config_for_params(peer.addr(), &default_params());
config.open_timeouts = vec![Duration::from_millis(200)];
config.hmac_key = Some(b"wrong-secret".to_vec());
@@ -340,13 +333,10 @@ fn real_hmac_wrong_key_fails() {
}
#[test]
fn real_hmac_missing_key_fails() {
if !require_real_backend() {
return;
}
fn backend_hmac_missing_key_fails() {
let server_key = b"compat-secret".to_vec();
let server = RealIrtServer::start(Some(&server_key)).unwrap();
let mut config = config_for_params(server.addr(), &default_params());
let peer = BackendPeer::start_hmac_required(server_key);
let mut config = config_for_params(peer.addr(), &default_params());
config.open_timeouts = vec![Duration::from_millis(200)];
config.hmac_key = None;