test: fix flaky test_webxdc_resend

This commit is contained in:
link2xt
2025-07-23 19:06:20 +00:00
committed by l
parent d5c418e909
commit 4e47ebd5fc

View File

@@ -990,23 +990,41 @@ mod tests {
alice.recv_msg_trash(&fiona_advert).await; alice.recv_msg_trash(&fiona_advert).await;
fiona_connect_future.await.unwrap(); fiona_connect_future.await.unwrap();
send_webxdc_realtime_data(alice, instance.id, b"alice -> bob & fiona".into())
.await
.unwrap();
loop { let realtime_send_loop = async {
let event = fiona.evtracker.recv().await.unwrap(); // Keep sending in a loop because right after joining
if let EventType::WebxdcRealtimeData { data, .. } = event.typ { // Fiona may miss messages.
if data == b"alice -> bob & fiona" { loop {
break; send_webxdc_realtime_data(alice, instance.id, b"alice -> bob & fiona".into())
} else { .await
panic!( .unwrap();
"Unexpected status update: {}", tokio::time::sleep(std::time::Duration::from_secs(1)).await;
String::from_utf8_lossy(&data) }
); };
let realtime_receive_loop = async {
loop {
let event = fiona.evtracker.recv().await.unwrap();
if let EventType::WebxdcRealtimeData { data, .. } = event.typ {
if data == b"alice -> bob & fiona" {
break;
} else {
panic!(
"Unexpected status update: {}",
String::from_utf8_lossy(&data)
);
}
} }
} }
} };
tokio::select!(
_ = realtime_send_loop => {
panic!("Send loop should never finish");
},
_ = realtime_receive_loop => {
return;
}
);
} }
async fn connect_alice_bob( async fn connect_alice_bob(