From 79cf06be20493bd5326cfdc4154435c1878a1dae Mon Sep 17 00:00:00 2001 From: Jeromy Date: Fri, 6 May 2016 09:14:27 -0700 Subject: [PATCH] move addspec definitions and add test for RegisterAddressType --- convert.go | 35 --------------------------------- registry.go | 35 +++++++++++++++++++++++++++++++++ registry_test.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 35 deletions(-) create mode 100644 registry_test.go diff --git a/convert.go b/convert.go index a521e97..f8ff71d 100644 --- a/convert.go +++ b/convert.go @@ -101,13 +101,6 @@ func DialArgs(m ma.Multiaddr) (string, string, error) { return network, host, nil } -var tcpAddrSpec = &AddressSpec{ - Key: "tcp", - NetNames: []string{"tcp", "tcp4", "tcp6"}, - ParseNetAddr: parseTcpNetAddr, - ConvertMultiaddr: parseBasicNetMaddr, -} - func parseTcpNetAddr(a net.Addr) (ma.Multiaddr, error) { ac, ok := a.(*net.TCPAddr) if !ok { @@ -130,13 +123,6 @@ func parseTcpNetAddr(a net.Addr) (ma.Multiaddr, error) { return ipm.Encapsulate(tcpm), nil } -var udpAddrSpec = &AddressSpec{ - Key: "udp", - NetNames: []string{"udp", "udp4", "udp6"}, - ParseNetAddr: parseUdpNetAddr, - ConvertMultiaddr: parseBasicNetMaddr, -} - func parseUdpNetAddr(a net.Addr) (ma.Multiaddr, error) { ac, ok := a.(*net.UDPAddr) if !ok { @@ -159,13 +145,6 @@ func parseUdpNetAddr(a net.Addr) (ma.Multiaddr, error) { return ipm.Encapsulate(udpm), nil } -var utpAddrSpec = &AddressSpec{ - Key: "utp", - NetNames: []string{"utp", "utp4", "utp6"}, - ParseNetAddr: parseUtpNetAddr, - ConvertMultiaddr: parseBasicNetMaddr, -} - func parseUtpNetAddr(a net.Addr) (ma.Multiaddr, error) { acc, ok := a.(*utp.Addr) if !ok { @@ -194,20 +173,6 @@ func parseUtpNetAddr(a net.Addr) (ma.Multiaddr, error) { return ipm.Encapsulate(utpm), nil } -var ip4AddrSpec = &AddressSpec{ - Key: "ip4", - NetNames: []string{"ip4"}, - ParseNetAddr: parseIpNetAddr, - ConvertMultiaddr: parseBasicNetMaddr, -} - -var ip6AddrSpec = &AddressSpec{ - Key: "ip6", - NetNames: []string{"ip6"}, - ParseNetAddr: parseIpNetAddr, - ConvertMultiaddr: parseBasicNetMaddr, -} - func parseIpNetAddr(a net.Addr) (ma.Multiaddr, error) { ac, ok := a.(*net.IPAddr) if !ok { diff --git a/registry.go b/registry.go index 57e6d98..aa8d22f 100644 --- a/registry.go +++ b/registry.go @@ -56,6 +56,41 @@ func init() { addrParsers["ip+net"] = parseIpPlusNetAddr } +var tcpAddrSpec = &AddressSpec{ + Key: "tcp", + NetNames: []string{"tcp", "tcp4", "tcp6"}, + ParseNetAddr: parseTcpNetAddr, + ConvertMultiaddr: parseBasicNetMaddr, +} + +var udpAddrSpec = &AddressSpec{ + Key: "udp", + NetNames: []string{"udp", "udp4", "udp6"}, + ParseNetAddr: parseUdpNetAddr, + ConvertMultiaddr: parseBasicNetMaddr, +} + +var utpAddrSpec = &AddressSpec{ + Key: "utp", + NetNames: []string{"utp", "utp4", "utp6"}, + ParseNetAddr: parseUtpNetAddr, + ConvertMultiaddr: parseBasicNetMaddr, +} + +var ip4AddrSpec = &AddressSpec{ + Key: "ip4", + NetNames: []string{"ip4"}, + ParseNetAddr: parseIpNetAddr, + ConvertMultiaddr: parseBasicNetMaddr, +} + +var ip6AddrSpec = &AddressSpec{ + Key: "ip6", + NetNames: []string{"ip6"}, + ParseNetAddr: parseIpNetAddr, + ConvertMultiaddr: parseBasicNetMaddr, +} + func getAddrParser(net string) (AddrParser, error) { addrParsersLock.Lock() defer addrParsersLock.Unlock() diff --git a/registry_test.go b/registry_test.go new file mode 100644 index 0000000..f185596 --- /dev/null +++ b/registry_test.go @@ -0,0 +1,50 @@ +package manet + +import ( + "net" + "testing" + + ma "github.com/jbenet/go-multiaddr" +) + +func TestRegisterSpec(t *testing.T) { + myproto := &AddressSpec{ + Key: "test", + NetNames: []string{"test", "iptest", "blahtest"}, + ConvertMultiaddr: func(a ma.Multiaddr) (net.Addr, error) { return nil, nil }, + ParseNetAddr: func(a net.Addr) (ma.Multiaddr, error) { return nil, nil }, + } + + RegisterAddressType(myproto) + + _, ok := addrParsers["test"] + if !ok { + t.Fatal("myproto not properly registered") + } + + _, ok = addrParsers["iptest"] + if !ok { + t.Fatal("myproto not properly registered") + } + + _, ok = addrParsers["blahtest"] + if !ok { + t.Fatal("myproto not properly registered") + } + + _, ok = maddrParsers["test"] + if !ok { + t.Fatal("myproto not properly registered") + } + + _, ok = maddrParsers["iptest"] + if ok { + t.Fatal("myproto not properly registered") + } + + _, ok = maddrParsers["blahtest"] + if ok { + t.Fatal("myproto not properly registered") + } + +}