channledb/addr_test: add negative test for unknown types
This commit is contained in:
parent
21674c05e5
commit
c6c442f6b6
@ -8,34 +8,59 @@ import (
|
|||||||
"github.com/lightningnetwork/lnd/tor"
|
"github.com/lightningnetwork/lnd/tor"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type unknownAddrType struct{}
|
||||||
|
|
||||||
|
func (_ unknownAddrType) Network() string { return "unknown" }
|
||||||
|
func (_ unknownAddrType) String() string { return "unknown" }
|
||||||
|
|
||||||
|
var addrTests = []struct {
|
||||||
|
expAddr net.Addr
|
||||||
|
serErr error
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
expAddr: &net.TCPAddr{
|
||||||
|
IP: net.ParseIP("192.168.1.1"),
|
||||||
|
Port: 12345,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
expAddr: &net.TCPAddr{
|
||||||
|
IP: net.ParseIP("2001:0db8:0000:0000:0000:ff00:0042:8329"),
|
||||||
|
Port: 65535,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
expAddr: &tor.OnionAddr{
|
||||||
|
OnionService: "3g2upl4pq6kufc4m.onion",
|
||||||
|
Port: 9735,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
expAddr: &tor.OnionAddr{
|
||||||
|
OnionService: "vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion",
|
||||||
|
Port: 80,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
expAddr: unknownAddrType{},
|
||||||
|
serErr: ErrUnknownAddressType,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
// TestAddrSerialization tests that the serialization method used by channeldb
|
// TestAddrSerialization tests that the serialization method used by channeldb
|
||||||
// for net.Addr's works as intended.
|
// for net.Addr's works as intended.
|
||||||
func TestAddrSerialization(t *testing.T) {
|
func TestAddrSerialization(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
testAddrs := []net.Addr{
|
|
||||||
&net.TCPAddr{
|
|
||||||
IP: net.ParseIP("192.168.1.1"),
|
|
||||||
Port: 12345,
|
|
||||||
},
|
|
||||||
&net.TCPAddr{
|
|
||||||
IP: net.ParseIP("2001:0db8:0000:0000:0000:ff00:0042:8329"),
|
|
||||||
Port: 65535,
|
|
||||||
},
|
|
||||||
&tor.OnionAddr{
|
|
||||||
OnionService: "3g2upl4pq6kufc4m.onion",
|
|
||||||
Port: 9735,
|
|
||||||
},
|
|
||||||
&tor.OnionAddr{
|
|
||||||
OnionService: "vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion",
|
|
||||||
Port: 80,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
var b bytes.Buffer
|
var b bytes.Buffer
|
||||||
for _, expectedAddr := range testAddrs {
|
for _, test := range addrTests {
|
||||||
if err := serializeAddr(&b, expectedAddr); err != nil {
|
err := serializeAddr(&b, test.expAddr)
|
||||||
t.Fatalf("unable to serialize address: %v", err)
|
if err != test.serErr {
|
||||||
|
t.Fatalf("unexpected serialization err for addr %v, "+
|
||||||
|
"want: %v, got %v",
|
||||||
|
test.expAddr, test.serErr, err)
|
||||||
|
} else if test.serErr != nil {
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
addr, err := deserializeAddr(&b)
|
addr, err := deserializeAddr(&b)
|
||||||
@ -43,9 +68,9 @@ func TestAddrSerialization(t *testing.T) {
|
|||||||
t.Fatalf("unable to deserialize address: %v", err)
|
t.Fatalf("unable to deserialize address: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if addr.String() != expectedAddr.String() {
|
if addr.String() != test.expAddr.String() {
|
||||||
t.Fatalf("expected address %v after serialization, "+
|
t.Fatalf("expected address %v after serialization, "+
|
||||||
"got %v", addr, expectedAddr)
|
"got %v", addr, test.expAddr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user