p2p/enode: more quic tests

This commit is contained in:
lightclient 2024-08-18 16:44:37 -06:00
parent 299eff3eb9
commit 3b4a63934c
No known key found for this signature in database
GPG key ID: 75C916AFEE20183E

View file

@ -68,11 +68,12 @@ func TestPythonInterop(t *testing.T) {
func TestNodeEndpoints(t *testing.T) {
id := HexID("00000000000000806ad9b61fa5ae014307ebdc964253adcd9f2c0a392aa11abc")
type endpointTest struct {
name string
node *Node
wantIP netip.Addr
wantUDP int
wantTCP int
name string
node *Node
wantIP netip.Addr
wantUDP int
wantTCP int
wantQUIC int
}
tests := []endpointTest{
{
@ -106,6 +107,14 @@ func TestNodeEndpoints(t *testing.T) {
return SignNull(&r, id)
}(),
},
{
name: "quic6-only",
node: func() *Node {
var r enr.Record
r.Set(enr.QUIC6(9000))
return SignNull(&r, id)
}(),
},
{
name: "ipv4-only-loopback",
node: func() *Node {
@ -217,6 +226,48 @@ func TestNodeEndpoints(t *testing.T) {
wantIP: netip.MustParseAddr("192.168.2.2"),
wantUDP: 30304,
},
{
name: "ipv4-quic",
node: func() *Node {
var r enr.Record
r.Set(enr.IPv4Addr(netip.MustParseAddr("99.22.33.1")))
r.Set(enr.QUIC(9001))
return SignNull(&r, id)
}(),
wantIP: netip.MustParseAddr("99.22.33.1"),
wantQUIC: 9001,
},
{ // Because the node is IPv4, the quic6 entry won't be loaded.
name: "ipv4-quic6",
node: func() *Node {
var r enr.Record
r.Set(enr.IPv4Addr(netip.MustParseAddr("99.22.33.1")))
r.Set(enr.QUIC6(9001))
return SignNull(&r, id)
}(),
wantIP: netip.MustParseAddr("99.22.33.1"),
},
{
name: "ipv6-quic",
node: func() *Node {
var r enr.Record
r.Set(enr.IPv6Addr(netip.MustParseAddr("2001::ff00:0042:8329")))
r.Set(enr.QUIC(9001))
return SignNull(&r, id)
}(),
wantIP: netip.MustParseAddr("2001::ff00:0042:8329"),
},
{
name: "ipv6-quic6",
node: func() *Node {
var r enr.Record
r.Set(enr.IPv6Addr(netip.MustParseAddr("2001::ff00:0042:8329")))
r.Set(enr.QUIC6(9001))
return SignNull(&r, id)
}(),
wantIP: netip.MustParseAddr("2001::ff00:0042:8329"),
wantQUIC: 9001,
},
}
for _, test := range tests {
@ -230,6 +281,9 @@ func TestNodeEndpoints(t *testing.T) {
if test.wantTCP != test.node.TCP() {
t.Errorf("node has wrong TCP port %d, want %d", test.node.TCP(), test.wantTCP)
}
if quic, _ := test.node.QUICEndpoint(); test.wantQUIC != int(quic.Port()) {
t.Errorf("node has wrong QUIC port %d, want %d", quic.Port(), test.wantQUIC)
}
})
}
}