From 8304d4166d8d200a6710e64ad4099b1b4afa20d4 Mon Sep 17 00:00:00 2001 From: tesol2y090 Date: Fri, 6 Dec 2024 17:01:41 +0700 Subject: [PATCH 1/2] feat: add muxer-test-harness dep --- Cargo.lock | 1 + transports/webrtc/Cargo.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 4093d49504b..4052ba91369 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3373,6 +3373,7 @@ dependencies = [ "if-watch", "libp2p-core", "libp2p-identity", + "libp2p-muxer-test-harness", "libp2p-noise", "libp2p-webrtc-utils", "multihash", diff --git a/transports/webrtc/Cargo.toml b/transports/webrtc/Cargo.toml index 4197a9419d8..29c5dd9a551 100644 --- a/transports/webrtc/Cargo.toml +++ b/transports/webrtc/Cargo.toml @@ -39,6 +39,7 @@ pem = ["webrtc?/pem"] [dev-dependencies] libp2p-identity = { workspace = true, features = ["rand"] } +libp2p-muxer-test-harness = { path = "../../muxers/test-harness" } tokio = { workspace = true, features = ["full"] } quickcheck = "1.0.3" tracing-subscriber = { workspace = true, features = ["env-filter"] } From 08b9cb48a186e03c2f806e01f639f2181fc7e6a5 Mon Sep 17 00:00:00 2001 From: tesol2y090 Date: Tue, 10 Dec 2024 16:33:48 +0700 Subject: [PATCH 2/2] feat: add muxer harness test --- transports/webrtc/tests/smoke.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/transports/webrtc/tests/smoke.rs b/transports/webrtc/tests/smoke.rs index 5f67c09d962..f0889328286 100644 --- a/transports/webrtc/tests/smoke.rs +++ b/transports/webrtc/tests/smoke.rs @@ -400,3 +400,27 @@ impl Future for ListenUpgrade<'_> { } } } + +#[tokio::test] +async fn close_implies_flush() { + let (alice, bob) = connected_peers().await; + + libp2p_muxer_test_harness::close_implies_flush(alice, bob).await; +} + +#[tokio::test] +async fn read_after_close() { + let (alice, bob) = connected_peers().await; + + libp2p_muxer_test_harness::read_after_close(alice, bob).await; +} + +async fn connected_peers() -> (StreamMuxerBox, StreamMuxerBox) { + let (_, mut a_transport) = create_transport(); + let (_, mut b_transport) = create_transport(); + + let addr = start_listening(&mut a_transport, "/ip4/127.0.0.1/udp/0/webrtc-direct").await; + let ((_, _, alice), (_, bob)) = connect(&mut a_transport, &mut b_transport, addr).await; + + (alice, bob) +}