test(cli): use real server for compliant peers

This commit is contained in:
Nils Andreas Svee committed 2026-08-14 17:21:22 +07:00
1 parent fca7a2fcc6
commit 446028671b
4 files changed
+99 -59

No files matched your search

@@ -13,7 +13,7 @@ const STARTUP_TIMEOUT: Duration = Duration::from_secs(2);
pub struct InTreeServer {
pub addr: SocketAddr,
shutdown: Option<oneshot::Sender<()>>,
done: Option<JoinHandle<Result<(), String>>>,
done: Option<JoinHandle<Result<(), irtt_server::ServerRuntimeError>>>,
}
impl InTreeServer {
@@ -24,52 +24,27 @@ impl InTreeServer {
let runtime = tokio::runtime::Builder::new_current_thread()
.enable_all()
.build()
.map_err(|error| format!("failed to build test server runtime: {error}"))?;
.expect("failed to build in-tree test server runtime");
runtime.block_on(async move {
let bind_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 0);
let mut server = match Server::bind(bind_addr, config).await {
Ok(server) => server,
Err(error) => {
let message = format!("failed to bind in-tree test server: {error}");
let _ = startup_tx.send(Err(message.clone()));
return Err(message);
}
};
let addr = match server.local_addr() {
Ok(addr) => addr,
Err(error) => {
let message =
format!("failed to read in-tree test server address: {error}");
let _ = startup_tx.send(Err(message.clone()));
return Err(message);
}
};
let mut server = Server::bind(bind_addr, config).await?;
startup_tx
.send(Ok(addr))
.map_err(|_| "test stopped waiting for in-tree server startup".to_owned())?;
.send(server.local_addr()?)
.expect("test stopped waiting for in-tree server startup");
server
.run(async {
let _ = shutdown_rx.await;
})
.await
.map_err(|error| format!("in-tree test server failed: {error}"))
})
});
let addr = match startup_rx.recv_timeout(STARTUP_TIMEOUT) {
Ok(Ok(addr)) => addr,
Ok(Err(error)) => {
done.join()
.expect("in-tree test server thread panicked")
.ok();
panic!("{error}");
}
Ok(addr) => addr,
Err(error) => {
let _ = shutdown_tx.send(());
done.join()
.expect("in-tree test server thread panicked")
.ok();
panic!("timed out waiting for in-tree test server startup: {error}");
let result = done.join().expect("in-tree test server thread panicked");
panic!("in-tree test server failed before startup ({error}): {result:?}");
}
};