Skip to content

Commit 11edf1b

Browse files
committed
fix: make test not fail on late duplicate Initial packets
1 parent bbebf3b commit 11edf1b

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

iroh/src/endpoint.rs

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1330,7 +1330,7 @@ mod tests {
13301330
use n0_watcher::Watcher;
13311331
use quinn::ConnectionError;
13321332
use rand::SeedableRng;
1333-
use tokio::sync::oneshot;
1333+
use tokio::sync::{mpsc, oneshot};
13341334
use tracing::{Instrument, debug, error_span, info, info_span, instrument};
13351335
use tracing_test::traced_test;
13361336

@@ -2526,13 +2526,26 @@ mod tests {
25262526
// and waits for the connection to be closed.
25272527
let server_task = tokio::spawn(
25282528
async move {
2529+
let (tx, mut rx) = mpsc::channel(4);
2530+
let accept_task = tokio::task::spawn({
2531+
let server = server.clone();
2532+
async move {
2533+
for i in 0.. {
2534+
info!("wait for connection {i}");
2535+
let incoming =
2536+
server.accept().await.context("server endpoint closed")?;
2537+
let tx = tx.clone();
2538+
tokio::task::spawn(async move {
2539+
let conn = incoming.await?;
2540+
tx.send(conn).await.ok();
2541+
n0_error::Ok(())
2542+
});
2543+
}
2544+
n0_error::Ok(())
2545+
}
2546+
});
25292547
for i in 0..count {
2530-
info!("wait for connection {i}");
2531-
let conn = server
2532-
.accept()
2533-
.await
2534-
.context("server endpoint closed")?
2535-
.await?;
2548+
let conn = rx.recv().await.context("sender dropped")?;
25362549
info!("accepted");
25372550
let mut s = conn.open_uni().await.anyerr()?;
25382551
s.write_all(b"hi").await.anyerr()?;
@@ -2541,6 +2554,7 @@ mod tests {
25412554
conn.closed().await;
25422555
info!("connection {i} complete");
25432556
}
2557+
accept_task.abort();
25442558
server.close().await;
25452559
n0_error::Ok(())
25462560
}

0 commit comments

Comments
 (0)