Skip to content

Commit cfa58f0

Browse files
authored
chore(quic): migrate tests from async-std to tokio
Migrate tests from async-std to tokio in transports/quic as per #4449 Pull-Request: #5841.
1 parent 40b729b commit cfa58f0

File tree

4 files changed

+47
-48
lines changed

4 files changed

+47
-48
lines changed

transports/quic/Cargo.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,18 @@ async-std = ["dep:async-std", "if-watch/smol", "quinn/runtime-async-std"]
3535
all-features = true
3636

3737
[dev-dependencies]
38-
async-std = { version = "1.12.0", features = ["attributes"] }
3938
libp2p-identity = { workspace = true, features = ["rand"] }
4039
libp2p-muxer-test-harness = { path = "../../muxers/test-harness" }
4140
libp2p-noise = { workspace = true }
42-
libp2p-tcp = { workspace = true, features = ["async-io"] }
41+
libp2p-tcp = { workspace = true, features = ["tokio"] }
4342
libp2p-yamux = { workspace = true }
4443
quickcheck = "1"
4544
tokio = { workspace = true, features = ["macros", "rt-multi-thread", "time"] }
4645
tracing-subscriber = { workspace = true, features = ["env-filter"] }
4746

4847
[[test]]
4948
name = "stream_compliance"
50-
required-features = ["async-std"]
49+
required-features = ["tokio"]
5150

5251
[lints]
5352
workspace = true

transports/quic/src/transport.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -845,12 +845,12 @@ mod tests {
845845
);
846846
}
847847

848-
#[cfg(feature = "async-std")]
849-
#[async_std::test]
848+
#[cfg(feature = "tokio")]
849+
#[tokio::test]
850850
async fn test_close_listener() {
851851
let keypair = libp2p_identity::Keypair::generate_ed25519();
852852
let config = Config::new(&keypair);
853-
let mut transport = crate::async_std::Transport::new(config);
853+
let mut transport = crate::tokio::Transport::new(config);
854854
assert!(poll_fn(|cx| Pin::new(&mut transport).as_mut().poll(cx))
855855
.now_or_never()
856856
.is_none());

transports/quic/tests/smoke.rs

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ async fn tokio_smoke() {
4141
smoke::<quic::tokio::Provider>().await
4242
}
4343

44-
#[cfg(feature = "async-std")]
45-
#[async_std::test]
44+
#[cfg(feature = "tokio")]
45+
#[tokio::test]
4646
async fn async_std_smoke() {
47-
smoke::<quic::async_std::Provider>().await
47+
smoke::<quic::tokio::Provider>().await
4848
}
4949

5050
#[cfg(feature = "tokio")]
@@ -74,14 +74,14 @@ async fn endpoint_reuse() {
7474
assert_eq!(a_send_back_addr, a_addr);
7575
}
7676

77-
#[cfg(feature = "async-std")]
78-
#[async_std::test]
77+
#[cfg(feature = "tokio")]
78+
#[tokio::test]
7979
async fn ipv4_dial_ipv6() {
8080
let _ = tracing_subscriber::fmt()
8181
.with_env_filter(EnvFilter::from_default_env())
8282
.try_init();
83-
let (a_peer_id, mut a_transport) = create_default_transport::<quic::async_std::Provider>();
84-
let (b_peer_id, mut b_transport) = create_default_transport::<quic::async_std::Provider>();
83+
let (a_peer_id, mut a_transport) = create_default_transport::<quic::tokio::Provider>();
84+
let (b_peer_id, mut b_transport) = create_default_transport::<quic::tokio::Provider>();
8585

8686
let a_addr = start_listening(&mut a_transport, "/ip6/::1/udp/0/quic-v1").await;
8787
let ((a_connected, _, _), (b_connected, _)) =
@@ -94,8 +94,8 @@ async fn ipv4_dial_ipv6() {
9494
/// Tests that a [`Transport::dial`] wakes up the task previously polling [`Transport::poll`].
9595
///
9696
/// See https://github.com/libp2p/rust-libp2p/pull/3306 for context.
97-
#[cfg(feature = "async-std")]
98-
#[async_std::test]
97+
#[cfg(feature = "tokio")]
98+
#[tokio::test]
9999
async fn wrapped_with_delay() {
100100
use libp2p_core::transport::DialOpts;
101101

@@ -161,15 +161,15 @@ async fn wrapped_with_delay() {
161161
}
162162
}
163163

164-
let (a_peer_id, mut a_transport) = create_default_transport::<quic::async_std::Provider>();
164+
let (a_peer_id, mut a_transport) = create_default_transport::<quic::tokio::Provider>();
165165
let (b_peer_id, mut b_transport) = {
166-
let (id, transport) = create_default_transport::<quic::async_std::Provider>();
166+
let (id, transport) = create_default_transport::<quic::tokio::Provider>();
167167
(id, DialDelay(Arc::new(Mutex::new(transport))).boxed())
168168
};
169169

170170
// Spawn A
171171
let a_addr = start_listening(&mut a_transport, "/ip6/::1/udp/0/quic-v1").await;
172-
let listener = async_std::task::spawn(async move {
172+
let listener = tokio::spawn(async move {
173173
let (upgrade, _) = a_transport
174174
.select_next_some()
175175
.await
@@ -184,7 +184,7 @@ async fn wrapped_with_delay() {
184184
//
185185
// Note that the dial is spawned on a different task than the transport allowing the transport
186186
// task to poll the transport once and then suspend, waiting for the wakeup from the dial.
187-
let dial = async_std::task::spawn({
187+
let dial = tokio::spawn({
188188
let dial = b_transport
189189
.dial(
190190
a_addr,
@@ -196,23 +196,23 @@ async fn wrapped_with_delay() {
196196
.unwrap();
197197
async { dial.await.unwrap().0 }
198198
});
199-
async_std::task::spawn(async move { b_transport.next().await });
199+
tokio::spawn(async move { b_transport.next().await });
200200

201201
let (a_connected, b_connected) = future::join(listener, dial).await;
202202

203-
assert_eq!(a_connected, b_peer_id);
204-
assert_eq!(b_connected, a_peer_id);
203+
assert_eq!(a_connected.unwrap(), b_peer_id);
204+
assert_eq!(b_connected.unwrap(), a_peer_id);
205205
}
206206

207-
#[cfg(feature = "async-std")]
208-
#[async_std::test]
207+
#[cfg(feature = "tokio")]
208+
#[tokio::test]
209209
#[ignore] // Transport currently does not validate PeerId.
210210
// Enable once we make use of PeerId validation in rustls.
211211
async fn wrong_peerid() {
212212
use libp2p_identity::PeerId;
213213

214-
let (a_peer_id, mut a_transport) = create_default_transport::<quic::async_std::Provider>();
215-
let (b_peer_id, mut b_transport) = create_default_transport::<quic::async_std::Provider>();
214+
let (a_peer_id, mut a_transport) = create_default_transport::<quic::tokio::Provider>();
215+
let (b_peer_id, mut b_transport) = create_default_transport::<quic::tokio::Provider>();
216216

217217
let a_addr = start_listening(&mut a_transport, "/ip6/::1/udp/0/quic-v1").await;
218218
let a_addr_random_peer = a_addr.with(Protocol::P2p(PeerId::random()));
@@ -224,15 +224,15 @@ async fn wrong_peerid() {
224224
assert_eq!(b_connected, a_peer_id);
225225
}
226226

227-
#[cfg(feature = "async-std")]
227+
#[cfg(feature = "tokio")]
228228
fn new_tcp_quic_transport() -> (PeerId, Boxed<(PeerId, StreamMuxerBox)>) {
229229
let keypair = generate_tls_keypair();
230230
let peer_id = keypair.public().to_peer_id();
231231
let mut config = quic::Config::new(&keypair);
232232
config.handshake_timeout = Duration::from_secs(1);
233233

234-
let quic_transport = quic::async_std::Transport::new(config);
235-
let tcp_transport = tcp::async_io::Transport::new(tcp::Config::default())
234+
let quic_transport = quic::tokio::Transport::new(config);
235+
let tcp_transport = tcp::tokio::Transport::new(tcp::Config::default())
236236
.upgrade(upgrade::Version::V1)
237237
.authenticate(noise::Config::new(&keypair).unwrap())
238238
.multiplex(yamux::Config::default());
@@ -247,8 +247,8 @@ fn new_tcp_quic_transport() -> (PeerId, Boxed<(PeerId, StreamMuxerBox)>) {
247247
(peer_id, transport)
248248
}
249249

250-
#[cfg(feature = "async-std")]
251-
#[async_std::test]
250+
#[cfg(feature = "tokio")]
251+
#[tokio::test]
252252
async fn tcp_and_quic() {
253253
let (a_peer_id, mut a_transport) = new_tcp_quic_transport();
254254
let (b_peer_id, mut b_transport) = new_tcp_quic_transport();
@@ -377,15 +377,15 @@ async fn draft_29_support() {
377377
}
378378
}
379379

380-
#[cfg(feature = "async-std")]
381-
#[async_std::test]
380+
#[cfg(feature = "tokio")]
381+
#[tokio::test]
382382
async fn backpressure() {
383383
let _ = tracing_subscriber::fmt()
384384
.with_env_filter(EnvFilter::from_default_env())
385385
.try_init();
386386
let max_stream_data = quic::Config::new(&generate_tls_keypair()).max_stream_data;
387387

388-
let (mut stream_a, mut stream_b) = build_streams::<quic::async_std::Provider>().await;
388+
let (mut stream_a, mut stream_b) = build_streams::<quic::tokio::Provider>().await;
389389

390390
let data = vec![0; max_stream_data as usize - 1];
391391

@@ -403,13 +403,13 @@ async fn backpressure() {
403403
assert!(stream_a.write(&more_data).now_or_never().is_some());
404404
}
405405

406-
#[cfg(feature = "async-std")]
407-
#[async_std::test]
406+
#[cfg(feature = "tokio")]
407+
#[tokio::test]
408408
async fn read_after_peer_dropped_stream() {
409409
let _ = tracing_subscriber::fmt()
410410
.with_env_filter(EnvFilter::from_default_env())
411411
.try_init();
412-
let (mut stream_a, mut stream_b) = build_streams::<quic::async_std::Provider>().await;
412+
let (mut stream_a, mut stream_b) = build_streams::<quic::tokio::Provider>().await;
413413

414414
let data = vec![0; 10];
415415

@@ -424,14 +424,14 @@ async fn read_after_peer_dropped_stream() {
424424
assert_eq!(data, buf)
425425
}
426426

427-
#[cfg(feature = "async-std")]
428-
#[async_std::test]
427+
#[cfg(feature = "tokio")]
428+
#[tokio::test]
429429
#[should_panic]
430430
async fn write_after_peer_dropped_stream() {
431431
let _ = tracing_subscriber::fmt()
432432
.with_env_filter(EnvFilter::from_default_env())
433433
.try_init();
434-
let (stream_a, mut stream_b) = build_streams::<quic::async_std::Provider>().await;
434+
let (stream_a, mut stream_b) = build_streams::<quic::tokio::Provider>().await;
435435
drop(stream_a);
436436
futures_timer::Delay::new(Duration::from_millis(100)).await;
437437

transports/quic/tests/stream_compliance.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ use libp2p_core::{
77
};
88
use libp2p_quic as quic;
99

10-
#[async_std::test]
10+
#[tokio::test]
1111
async fn close_implies_flush() {
1212
let (alice, bob) = connected_peers().await;
1313

1414
libp2p_muxer_test_harness::close_implies_flush(alice, bob).await;
1515
}
1616

17-
#[async_std::test]
17+
#[tokio::test]
1818
async fn read_after_close() {
1919
let (alice, bob) = connected_peers().await;
2020

@@ -36,10 +36,10 @@ async fn connected_peers() -> (quic::Connection, quic::Connection) {
3636
let (dialer_conn_sender, dialer_conn_receiver) = oneshot::channel();
3737
let (listener_conn_sender, listener_conn_receiver) = oneshot::channel();
3838

39-
async_std::task::spawn(async move {
39+
tokio::spawn(async move {
4040
let (upgrade, _) = listener.next().await.unwrap().into_incoming().unwrap();
4141

42-
async_std::task::spawn(async move {
42+
tokio::spawn(async move {
4343
let (_, connection) = upgrade.await.unwrap();
4444

4545
let _ = listener_conn_sender.send(connection);
@@ -58,13 +58,13 @@ async fn connected_peers() -> (quic::Connection, quic::Connection) {
5858
},
5959
)
6060
.unwrap();
61-
async_std::task::spawn(async move {
61+
tokio::spawn(async move {
6262
let connection = dial_fut.await.unwrap().1;
6363

6464
let _ = dialer_conn_sender.send(connection);
6565
});
6666

67-
async_std::task::spawn(async move {
67+
tokio::spawn(async move {
6868
loop {
6969
dialer.next().await;
7070
}
@@ -75,10 +75,10 @@ async fn connected_peers() -> (quic::Connection, quic::Connection) {
7575
.unwrap()
7676
}
7777

78-
fn new_transport() -> quic::async_std::Transport {
78+
fn new_transport() -> quic::tokio::Transport {
7979
let keypair = libp2p_identity::Keypair::generate_ed25519();
8080
let mut config = quic::Config::new(&keypair);
8181
config.handshake_timeout = Duration::from_secs(1);
8282

83-
quic::async_std::Transport::new(config)
83+
quic::tokio::Transport::new(config)
8484
}

0 commit comments

Comments
 (0)