bugfix: Listen always return err. test it

This commit is contained in:
Juan Batiz-Benet 2014-11-20 05:09:46 -08:00
parent 625fac6e50
commit b6265d8119
3 changed files with 35 additions and 7 deletions

View File

@ -154,6 +154,7 @@ func DialArgs(m ma.Multiaddr) (string, string, error) {
if parts[2] == "udp" && len(parts) > 4 && parts[4] == "utp" {
network = parts[4]
}
var host string
switch parts[0] {
case "ip4":

11
net.go
View File

@ -226,14 +226,11 @@ func Listen(laddr ma.Multiaddr) (Listener, error) {
switch lnet {
case "utp":
nl, err = utp.Listen(lnet, lnaddr)
if err != nil {
return nil, err
}
case "tcp":
default:
nl, err = net.Listen(lnet, lnaddr)
if err != nil {
return nil, err
}
}
if err != nil {
return nil, err
}
return &maListener{

View File

@ -138,6 +138,36 @@ func TestListen(t *testing.T) {
wg.Wait()
}
func TestListenAddrs(t *testing.T) {
test := func(addr string, succeed bool) {
maddr := newMultiaddr(t, addr)
l, err := Listen(maddr)
if !succeed {
if err == nil {
t.Fatal("succeeded in listening", addr)
}
return
}
if succeed && err != nil {
t.Fatal("failed to listen", addr, err)
}
if l == nil {
t.Fatal("failed to listen", addr, succeed, err)
}
if err = l.Close(); err != nil {
t.Fatal("failed to close listener", addr, err)
}
}
test("/ip4/127.0.0.1/tcp/4324", true)
test("/ip4/127.0.0.1/udp/4325", false)
test("/ip4/127.0.0.1/udp/4326/udt", false)
test("/ip4/127.0.0.1/udp/4326/utp", true)
}
func TestListenAndDial(t *testing.T) {
maddr := newMultiaddr(t, "/ip4/127.0.0.1/tcp/4323")