Tweak how subtrate-client tests waits to connect to the Monero node

This commit is contained in:
Luke Parker
2025-08-09 14:15:53 -04:00
parent 8fcfa6d3d5
commit f2595c4939

View File

@@ -49,17 +49,24 @@ macro_rules! serai_test {
test.provide_container(composition); test.provide_container(composition);
test.run_async(|ops| async move { test.run_async(|ops| async move {
// Sleep until the Substrate RPC starts // Sleep until the Substrate RPC starts
let serai_rpc = ops.handle(handle).host_port(9944).unwrap(); let mut ticks = 0;
let serai_rpc = format!("http://{}:{}", serai_rpc.0, serai_rpc.1); let serai_rpc = loop {
// Bound execution to 60 seconds // Bound execution to 60 seconds
for _ in 0 .. 60 { if ticks > 60 {
panic!("Serai node didn't start within 60 seconds");
}
tokio::time::sleep(core::time::Duration::from_secs(1)).await; tokio::time::sleep(core::time::Duration::from_secs(1)).await;
ticks += 1;
let Ok(serai_rpc) = ops.handle(handle).host_port(9944) else { continue };
let serai_rpc = format!("http://{}:{}", serai_rpc.0, serai_rpc.1);
let Ok(client) = Serai::new(serai_rpc.clone()).await else { continue }; let Ok(client) = Serai::new(serai_rpc.clone()).await else { continue };
if client.latest_finalized_block_hash().await.is_err() { if client.latest_finalized_block_hash().await.is_err() {
continue; continue;
} }
break; break serai_rpc;
} };
#[allow(clippy::redundant_closure_call)] #[allow(clippy::redundant_closure_call)]
$test(Serai::new(serai_rpc).await.unwrap()).await; $test(Serai::new(serai_rpc).await.unwrap()).await;
}).await; }).await;