@@ -68,11 +68,12 @@ func TestPythonInterop(t *testing.T) {
68
68
func TestNodeEndpoints (t * testing.T ) {
69
69
id := HexID ("00000000000000806ad9b61fa5ae014307ebdc964253adcd9f2c0a392aa11abc" )
70
70
type endpointTest struct {
71
- name string
72
- node * Node
73
- wantIP netip.Addr
74
- wantUDP int
75
- wantTCP int
71
+ name string
72
+ node * Node
73
+ wantIP netip.Addr
74
+ wantUDP int
75
+ wantTCP int
76
+ wantQUIC int
76
77
}
77
78
tests := []endpointTest {
78
79
{
@@ -98,6 +99,22 @@ func TestNodeEndpoints(t *testing.T) {
98
99
return SignNull (& r , id )
99
100
}(),
100
101
},
102
+ {
103
+ name : "quic-only" ,
104
+ node : func () * Node {
105
+ var r enr.Record
106
+ r .Set (enr .QUIC (9000 ))
107
+ return SignNull (& r , id )
108
+ }(),
109
+ },
110
+ {
111
+ name : "quic6-only" ,
112
+ node : func () * Node {
113
+ var r enr.Record
114
+ r .Set (enr .QUIC6 (9000 ))
115
+ return SignNull (& r , id )
116
+ }(),
117
+ },
101
118
{
102
119
name : "ipv4-only-loopback" ,
103
120
node : func () * Node {
@@ -209,6 +226,48 @@ func TestNodeEndpoints(t *testing.T) {
209
226
wantIP : netip .MustParseAddr ("192.168.2.2" ),
210
227
wantUDP : 30304 ,
211
228
},
229
+ {
230
+ name : "ipv4-quic" ,
231
+ node : func () * Node {
232
+ var r enr.Record
233
+ r .Set (enr .IPv4Addr (netip .MustParseAddr ("99.22.33.1" )))
234
+ r .Set (enr .QUIC (9001 ))
235
+ return SignNull (& r , id )
236
+ }(),
237
+ wantIP : netip .MustParseAddr ("99.22.33.1" ),
238
+ wantQUIC : 9001 ,
239
+ },
240
+ { // Because the node is IPv4, the quic6 entry won't be loaded.
241
+ name : "ipv4-quic6" ,
242
+ node : func () * Node {
243
+ var r enr.Record
244
+ r .Set (enr .IPv4Addr (netip .MustParseAddr ("99.22.33.1" )))
245
+ r .Set (enr .QUIC6 (9001 ))
246
+ return SignNull (& r , id )
247
+ }(),
248
+ wantIP : netip .MustParseAddr ("99.22.33.1" ),
249
+ },
250
+ {
251
+ name : "ipv6-quic" ,
252
+ node : func () * Node {
253
+ var r enr.Record
254
+ r .Set (enr .IPv6Addr (netip .MustParseAddr ("2001::ff00:0042:8329" )))
255
+ r .Set (enr .QUIC (9001 ))
256
+ return SignNull (& r , id )
257
+ }(),
258
+ wantIP : netip .MustParseAddr ("2001::ff00:0042:8329" ),
259
+ },
260
+ {
261
+ name : "ipv6-quic6" ,
262
+ node : func () * Node {
263
+ var r enr.Record
264
+ r .Set (enr .IPv6Addr (netip .MustParseAddr ("2001::ff00:0042:8329" )))
265
+ r .Set (enr .QUIC6 (9001 ))
266
+ return SignNull (& r , id )
267
+ }(),
268
+ wantIP : netip .MustParseAddr ("2001::ff00:0042:8329" ),
269
+ wantQUIC : 9001 ,
270
+ },
212
271
}
213
272
214
273
for _ , test := range tests {
@@ -222,6 +281,9 @@ func TestNodeEndpoints(t *testing.T) {
222
281
if test .wantTCP != test .node .TCP () {
223
282
t .Errorf ("node has wrong TCP port %d, want %d" , test .node .TCP (), test .wantTCP )
224
283
}
284
+ if quic , _ := test .node .QUICEndpoint (); test .wantQUIC != int (quic .Port ()) {
285
+ t .Errorf ("node has wrong QUIC port %d, want %d" , quic .Port (), test .wantQUIC )
286
+ }
225
287
})
226
288
}
227
289
}
0 commit comments