@@ -133,6 +133,22 @@ var transportsToTest = []TransportTestCase{
133
133
return h
134
134
},
135
135
},
136
+ {
137
+ Name : "TCP / Noise / Yamux (IPv6)" ,
138
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
139
+ libp2pOpts := transformOpts (opts )
140
+ libp2pOpts = append (libp2pOpts , libp2p .Security (noise .ID , noise .New ))
141
+ libp2pOpts = append (libp2pOpts , libp2p .Muxer (yamux .ID , yamux .DefaultTransport ))
142
+ if opts .NoListen {
143
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs )
144
+ } else {
145
+ libp2pOpts = append (libp2pOpts , libp2p .ListenAddrStrings ("/ip6/::1/tcp/0" ))
146
+ }
147
+ h , err := libp2p .New (libp2pOpts ... )
148
+ require .NoError (t , err )
149
+ return h
150
+ },
151
+ },
136
152
{
137
153
Name : "TCP / TLS / Yamux" ,
138
154
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -149,6 +165,22 @@ var transportsToTest = []TransportTestCase{
149
165
return h
150
166
},
151
167
},
168
+ {
169
+ Name : "TCP / TLS / Yamux (IPv6)" ,
170
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
171
+ libp2pOpts := transformOpts (opts )
172
+ libp2pOpts = append (libp2pOpts , libp2p .Security (libp2ptls .ID , libp2ptls .New ))
173
+ libp2pOpts = append (libp2pOpts , libp2p .Muxer (yamux .ID , yamux .DefaultTransport ))
174
+ if opts .NoListen {
175
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs )
176
+ } else {
177
+ libp2pOpts = append (libp2pOpts , libp2p .ListenAddrStrings ("/ip6/::1/tcp/0" ))
178
+ }
179
+ h , err := libp2p .New (libp2pOpts ... )
180
+ require .NoError (t , err )
181
+ return h
182
+ },
183
+ },
152
184
{
153
185
Name : "TCP-Shared / TLS / Yamux" ,
154
186
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -166,6 +198,23 @@ var transportsToTest = []TransportTestCase{
166
198
return h
167
199
},
168
200
},
201
+ {
202
+ Name : "TCP-Shared / TLS / Yamux (IPv6)" ,
203
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
204
+ libp2pOpts := transformOpts (opts )
205
+ libp2pOpts = append (libp2pOpts , libp2p .ShareTCPListener ())
206
+ libp2pOpts = append (libp2pOpts , libp2p .Security (libp2ptls .ID , libp2ptls .New ))
207
+ libp2pOpts = append (libp2pOpts , libp2p .Muxer (yamux .ID , yamux .DefaultTransport ))
208
+ if opts .NoListen {
209
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs )
210
+ } else {
211
+ libp2pOpts = append (libp2pOpts , libp2p .ListenAddrStrings ("/ip6/::1/tcp/0" ))
212
+ }
213
+ h , err := libp2p .New (libp2pOpts ... )
214
+ require .NoError (t , err )
215
+ return h
216
+ },
217
+ },
169
218
{
170
219
Name : "TCP-Shared-WithMetrics / TLS / Yamux" ,
171
220
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -184,6 +233,24 @@ var transportsToTest = []TransportTestCase{
184
233
return h
185
234
},
186
235
},
236
+ {
237
+ Name : "TCP-Shared-WithMetrics / TLS / Yamux (IPv6)" ,
238
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
239
+ libp2pOpts := transformOpts (opts )
240
+ libp2pOpts = append (libp2pOpts , libp2p .ShareTCPListener ())
241
+ libp2pOpts = append (libp2pOpts , libp2p .Security (libp2ptls .ID , libp2ptls .New ))
242
+ libp2pOpts = append (libp2pOpts , libp2p .Muxer (yamux .ID , yamux .DefaultTransport ))
243
+ libp2pOpts = append (libp2pOpts , libp2p .Transport (tcp .NewTCPTransport , tcp .WithMetrics ()))
244
+ if opts .NoListen {
245
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs )
246
+ } else {
247
+ libp2pOpts = append (libp2pOpts , libp2p .ListenAddrStrings ("/ip6/::1/tcp/0" ))
248
+ }
249
+ h , err := libp2p .New (libp2pOpts ... )
250
+ require .NoError (t , err )
251
+ return h
252
+ },
253
+ },
187
254
{
188
255
Name : "TCP-WithMetrics / TLS / Yamux" ,
189
256
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -201,6 +268,23 @@ var transportsToTest = []TransportTestCase{
201
268
return h
202
269
},
203
270
},
271
+ {
272
+ Name : "TCP-WithMetrics / TLS / Yamux (IPv6)" ,
273
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
274
+ libp2pOpts := transformOpts (opts )
275
+ libp2pOpts = append (libp2pOpts , libp2p .Security (libp2ptls .ID , libp2ptls .New ))
276
+ libp2pOpts = append (libp2pOpts , libp2p .Muxer (yamux .ID , yamux .DefaultTransport ))
277
+ libp2pOpts = append (libp2pOpts , libp2p .Transport (tcp .NewTCPTransport , tcp .WithMetrics ()))
278
+ if opts .NoListen {
279
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs )
280
+ } else {
281
+ libp2pOpts = append (libp2pOpts , libp2p .ListenAddrStrings ("/ip6/::1/tcp/0" ))
282
+ }
283
+ h , err := libp2p .New (libp2pOpts ... )
284
+ require .NoError (t , err )
285
+ return h
286
+ },
287
+ },
204
288
{
205
289
Name : "WebSocket-Shared" ,
206
290
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -216,6 +300,21 @@ var transportsToTest = []TransportTestCase{
216
300
return h
217
301
},
218
302
},
303
+ {
304
+ Name : "WebSocket-Shared (IPv6)" ,
305
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
306
+ libp2pOpts := transformOpts (opts )
307
+ libp2pOpts = append (libp2pOpts , libp2p .ShareTCPListener ())
308
+ if opts .NoListen {
309
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs )
310
+ } else {
311
+ libp2pOpts = append (libp2pOpts , libp2p .ListenAddrStrings ("/ip6/::1/tcp/0/ws" ))
312
+ }
313
+ h , err := libp2p .New (libp2pOpts ... )
314
+ require .NoError (t , err )
315
+ return h
316
+ },
317
+ },
219
318
{
220
319
Name : "WebSocket-Secured-Shared" ,
221
320
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -233,6 +332,23 @@ var transportsToTest = []TransportTestCase{
233
332
return h
234
333
},
235
334
},
335
+ {
336
+ Name : "WebSocket-Secured-Shared (IPv6)" ,
337
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
338
+ libp2pOpts := transformOpts (opts )
339
+ libp2pOpts = append (libp2pOpts , libp2p .ShareTCPListener ())
340
+ if opts .NoListen {
341
+ config := tls.Config {InsecureSkipVerify : true }
342
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs , libp2p .Transport (websocket .New , websocket .WithTLSClientConfig (& config )))
343
+ } else {
344
+ config := selfSignedTLSConfig (t )
345
+ libp2pOpts = append (libp2pOpts , libp2p .ListenAddrStrings ("/ip6/::1/tcp/0/sni/localhost/tls/ws" ), libp2p .Transport (websocket .New , websocket .WithTLSConfig (config )))
346
+ }
347
+ h , err := libp2p .New (libp2pOpts ... )
348
+ require .NoError (t , err )
349
+ return h
350
+ },
351
+ },
236
352
{
237
353
Name : "WebSocket" ,
238
354
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -247,6 +363,20 @@ var transportsToTest = []TransportTestCase{
247
363
return h
248
364
},
249
365
},
366
+ {
367
+ Name : "WebSocket (IPv6)" ,
368
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
369
+ libp2pOpts := transformOpts (opts )
370
+ if opts .NoListen {
371
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs )
372
+ } else {
373
+ libp2pOpts = append (libp2pOpts , libp2p .ListenAddrStrings ("/ip6/::1/tcp/0/ws" ))
374
+ }
375
+ h , err := libp2p .New (libp2pOpts ... )
376
+ require .NoError (t , err )
377
+ return h
378
+ },
379
+ },
250
380
{
251
381
Name : "WebSocket-Secured" ,
252
382
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -263,6 +393,22 @@ var transportsToTest = []TransportTestCase{
263
393
return h
264
394
},
265
395
},
396
+ {
397
+ Name : "WebSocket-Secured (IPv6)" ,
398
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
399
+ libp2pOpts := transformOpts (opts )
400
+ if opts .NoListen {
401
+ config := tls.Config {InsecureSkipVerify : true }
402
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs , libp2p .Transport (websocket .New , websocket .WithTLSClientConfig (& config )))
403
+ } else {
404
+ config := selfSignedTLSConfig (t )
405
+ libp2pOpts = append (libp2pOpts , libp2p .ListenAddrStrings ("/ip6/::1/tcp/0/sni/localhost/tls/ws" ), libp2p .Transport (websocket .New , websocket .WithTLSConfig (config )))
406
+ }
407
+ h , err := libp2p .New (libp2pOpts ... )
408
+ require .NoError (t , err )
409
+ return h
410
+ },
411
+ },
266
412
{
267
413
Name : "QUIC" ,
268
414
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -277,6 +423,20 @@ var transportsToTest = []TransportTestCase{
277
423
return h
278
424
},
279
425
},
426
+ {
427
+ Name : "QUIC (IPv6)" ,
428
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
429
+ libp2pOpts := transformOpts (opts )
430
+ if opts .NoListen {
431
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs )
432
+ } else {
433
+ libp2pOpts = append (libp2pOpts , libp2p .ListenAddrStrings ("/ip6/::1/udp/0/quic-v1" ))
434
+ }
435
+ h , err := libp2p .New (libp2pOpts ... )
436
+ require .NoError (t , err )
437
+ return h
438
+ },
439
+ },
280
440
{
281
441
Name : "QUIC-CustomReuse" ,
282
442
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -300,6 +460,29 @@ var transportsToTest = []TransportTestCase{
300
460
return h
301
461
},
302
462
},
463
+ {
464
+ Name : "QUIC-CustomReuse (IPv6)" ,
465
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
466
+ libp2pOpts := transformOpts (opts )
467
+ if opts .NoListen {
468
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs , libp2p .QUICReuse (quicreuse .NewConnManager ))
469
+ } else {
470
+ qr := libp2p .QUICReuse (quicreuse .NewConnManager )
471
+ if ! opts .NoRcmgr && opts .ResourceManager != nil {
472
+ qr = libp2p .QUICReuse (
473
+ quicreuse .NewConnManager ,
474
+ quicreuse .VerifySourceAddress (opts .ResourceManager .VerifySourceAddress ))
475
+ }
476
+ libp2pOpts = append (libp2pOpts ,
477
+ qr ,
478
+ libp2p .ListenAddrStrings ("/ip6/::1/udp/0/quic-v1" ),
479
+ )
480
+ }
481
+ h , err := libp2p .New (libp2pOpts ... )
482
+ require .NoError (t , err )
483
+ return h
484
+ },
485
+ },
303
486
{
304
487
Name : "WebTransport" ,
305
488
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -314,6 +497,20 @@ var transportsToTest = []TransportTestCase{
314
497
return h
315
498
},
316
499
},
500
+ {
501
+ Name : "WebTransport (IPv6)" ,
502
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
503
+ libp2pOpts := transformOpts (opts )
504
+ if opts .NoListen {
505
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs )
506
+ } else {
507
+ libp2pOpts = append (libp2pOpts , libp2p .ListenAddrStrings ("/ip6/::1/udp/0/quic-v1/webtransport" ))
508
+ }
509
+ h , err := libp2p .New (libp2pOpts ... )
510
+ require .NoError (t , err )
511
+ return h
512
+ },
513
+ },
317
514
{
318
515
Name : "WebTransport-CustomReuse" ,
319
516
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -338,6 +535,30 @@ var transportsToTest = []TransportTestCase{
338
535
return h
339
536
},
340
537
},
538
+ {
539
+ Name : "WebTransport-CustomReuse (IPv6)" ,
540
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
541
+ libp2pOpts := transformOpts (opts )
542
+ if opts .NoListen {
543
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs , libp2p .QUICReuse (quicreuse .NewConnManager ))
544
+ } else {
545
+ qr := libp2p .QUICReuse (quicreuse .NewConnManager )
546
+ if ! opts .NoRcmgr && opts .ResourceManager != nil {
547
+ qr = libp2p .QUICReuse (
548
+ quicreuse .NewConnManager ,
549
+ quicreuse .VerifySourceAddress (opts .ResourceManager .VerifySourceAddress ),
550
+ )
551
+ }
552
+ libp2pOpts = append (libp2pOpts ,
553
+ qr ,
554
+ libp2p .ListenAddrStrings ("/ip6/::1/udp/0/quic-v1/webtransport" ),
555
+ )
556
+ }
557
+ h , err := libp2p .New (libp2pOpts ... )
558
+ require .NoError (t , err )
559
+ return h
560
+ },
561
+ },
341
562
{
342
563
Name : "WebRTC" ,
343
564
HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
@@ -353,6 +574,21 @@ var transportsToTest = []TransportTestCase{
353
574
return h
354
575
},
355
576
},
577
+ {
578
+ Name : "WebRTC (IPv6)" ,
579
+ HostGenerator : func (t * testing.T , opts TransportTestCaseOpts ) host.Host {
580
+ libp2pOpts := transformOpts (opts )
581
+ libp2pOpts = append (libp2pOpts , libp2p .Transport (libp2pwebrtc .New ))
582
+ if opts .NoListen {
583
+ libp2pOpts = append (libp2pOpts , libp2p .NoListenAddrs )
584
+ } else {
585
+ libp2pOpts = append (libp2pOpts , libp2p .ListenAddrStrings ("/ip6/::1/udp/0/webrtc-direct" ))
586
+ }
587
+ h , err := libp2p .New (libp2pOpts ... )
588
+ require .NoError (t , err )
589
+ return h
590
+ },
591
+ },
356
592
}
357
593
358
594
func TestPing (t * testing.T ) {
0 commit comments