@@ -11,7 +11,7 @@ const TIMEOUT: Duration = Duration::from_secs(10);
1111
1212/// Publish a broadcast on the server, subscribe on the client, and verify
1313/// the data arrives correctly using the specified QUIC backend and URL scheme.
14- #[ cfg( any( feature = "quinn" , feature = "quiche" ) ) ]
14+ #[ cfg( any( feature = "quinn" , feature = "quiche" , feature = "noq" ) ) ]
1515async fn backend_test ( scheme : & str , backend : moq_native:: QuicBackend ) {
1616 // ── publisher (server) ──────────────────────────────────────────
1717 let pub_origin = Origin :: produce ( ) ;
@@ -132,7 +132,6 @@ async fn quiche_webtransport() {
132132#[ cfg( feature = "iroh" ) ]
133133#[ tracing_test:: traced_test]
134134#[ tokio:: test]
135- #[ ignore = "iroh peer discovery requires network; needs direct addressing support in moq-native" ]
136135async fn iroh_connect ( ) {
137136 use moq_native:: IrohEndpointConfig ;
138137
@@ -156,6 +155,10 @@ async fn iroh_connect() {
156155 . expect ( "failed to bind server iroh endpoint" )
157156 . expect ( "server iroh endpoint not enabled" ) ;
158157
158+ // Get the server's direct addresses before moving it into the server.
159+ let server_addr = server_endpoint. addr ( ) ;
160+ let server_addrs: Vec < std:: net:: SocketAddr > = server_addr. ip_addrs ( ) . copied ( ) . collect ( ) ;
161+
159162 let server_endpoint_id = server_endpoint. id ( ) ;
160163
161164 // Server still needs a QUIC bind for init, but we'll connect via iroh
@@ -187,7 +190,8 @@ async fn iroh_connect() {
187190 let client = client_config
188191 . init ( )
189192 . expect ( "failed to init client" )
190- . with_iroh ( Some ( client_endpoint) ) ;
193+ . with_iroh ( Some ( client_endpoint) )
194+ . with_iroh_addrs ( server_addrs) ;
191195
192196 let url: url:: Url = format ! ( "iroh://{server_endpoint_id}" ) . parse ( ) . unwrap ( ) ;
193197
@@ -241,3 +245,19 @@ async fn iroh_connect() {
241245 . expect ( "server task panicked" )
242246 . expect ( "server task failed" ) ;
243247}
248+
249+ // ── Noq backend ─────────────────────────────────────────────────────
250+
251+ #[ cfg( feature = "noq" ) ]
252+ #[ tracing_test:: traced_test]
253+ #[ tokio:: test]
254+ async fn noq_raw_quic ( ) {
255+ backend_test ( "moqt" , moq_native:: QuicBackend :: Noq ) . await ;
256+ }
257+
258+ #[ cfg( feature = "noq" ) ]
259+ #[ tracing_test:: traced_test]
260+ #[ tokio:: test]
261+ async fn noq_webtransport ( ) {
262+ backend_test ( "https" , moq_native:: QuicBackend :: Noq ) . await ;
263+ }
0 commit comments