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"] } 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) +}