Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
go-libp2p
Commits
5ec1f553
Commit
5ec1f553
authored
Mar 04, 2016
by
Jeromy
Browse files
fix fallback code and add a few new tests
parent
1b84a1cc
Changes
3
Hide whitespace changes
Inline
Side-by-side
.travis.yml
View file @
5ec1f553
...
...
@@ -5,7 +5,7 @@ os:
language
:
go
go
:
-
1.5.
1
-
1.5.
2
env
:
-
GO15VENDOREXPERIMENT=1
...
...
p2p/net/transport/fallback.go
View file @
5ec1f553
...
...
@@ -23,6 +23,7 @@ func (fbd *FallbackDialer) Dial(a ma.Multiaddr) (Conn, error) {
return
fbd
.
tcpDial
(
a
)
}
if
mafmt
.
UTP
.
Matches
(
a
)
{
return
fbd
.
tcpDial
(
a
)
}
return
nil
,
fmt
.
Errorf
(
"cannot dial %s with fallback dialer"
,
a
)
}
...
...
p2p/net/transport/transport_test.go
0 → 100644
View file @
5ec1f553
package
transport
import
(
"fmt"
"io"
"testing"
ma
"gx/ipfs/QmcobAGsCjYt5DXoq9et9L8yR8er7o7Cu3DTvpaq12jYSz/go-multiaddr"
)
func
TestTcpTransport
(
t
*
testing
.
T
)
{
ta
:=
NewTCPTransport
()
tb
:=
NewTCPTransport
()
zero
:=
"/ip4/127.0.0.1/tcp/0"
subtestTransport
(
t
,
ta
,
tb
,
zero
)
}
func
TestUtpTransport
(
t
*
testing
.
T
)
{
ta
:=
NewUtpTransport
()
tb
:=
NewUtpTransport
()
zero
:=
"/ip4/127.0.0.1/udp/0/utp"
subtestTransport
(
t
,
ta
,
tb
,
zero
)
}
func
subtestTransport
(
t
*
testing
.
T
,
ta
,
tb
Transport
,
addr
string
)
{
maddr
,
err
:=
ma
.
NewMultiaddr
(
addr
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
list
,
err
:=
ta
.
Listen
(
maddr
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
dialer
,
err
:=
tb
.
Dialer
(
maddr
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
accepted
:=
make
(
chan
Conn
,
1
)
errs
:=
make
(
chan
error
,
1
)
go
func
()
{
b
,
err
:=
list
.
Accept
()
if
err
!=
nil
{
errs
<-
err
return
}
accepted
<-
b
}()
a
,
err
:=
dialer
.
Dial
(
list
.
Multiaddr
())
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
var
b
Conn
select
{
case
b
=
<-
accepted
:
case
err
:=
<-
errs
:
t
.
Fatal
(
err
)
}
defer
a
.
Close
()
defer
b
.
Close
()
err
=
checkDataTransfer
(
a
,
b
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
}
func
checkDataTransfer
(
a
,
b
io
.
ReadWriter
)
error
{
errs
:=
make
(
chan
error
,
2
)
data
:=
[]
byte
(
"this is some test data"
)
go
func
()
{
n
,
err
:=
a
.
Write
(
data
)
if
err
!=
nil
{
errs
<-
err
return
}
if
n
!=
len
(
data
)
{
errs
<-
fmt
.
Errorf
(
"failed to write enough data (a->b)"
)
return
}
buf
:=
make
([]
byte
,
len
(
data
))
_
,
err
=
io
.
ReadFull
(
a
,
buf
)
if
err
!=
nil
{
errs
<-
err
return
}
errs
<-
nil
}()
go
func
()
{
buf
:=
make
([]
byte
,
len
(
data
))
_
,
err
:=
io
.
ReadFull
(
b
,
buf
)
if
err
!=
nil
{
errs
<-
err
return
}
n
,
err
:=
b
.
Write
(
data
)
if
err
!=
nil
{
errs
<-
err
return
}
if
n
!=
len
(
data
)
{
errs
<-
fmt
.
Errorf
(
"failed to write enough data (b->a)"
)
return
}
errs
<-
nil
}()
err
:=
<-
errs
if
err
!=
nil
{
return
err
}
err
=
<-
errs
if
err
!=
nil
{
return
err
}
return
nil
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment