Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
p2p
go-reuseport-transport
Commits
b212128b
Commit
b212128b
authored
Mar 29, 2018
by
Steven Allen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add a test for dialing with a local and an unspecified listener
parent
38777eb7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
71 additions
and
0 deletions
+71
-0
transport_test.go
transport_test.go
+71
-0
No files found.
transport_test.go
View file @
b212128b
...
...
@@ -84,3 +84,74 @@ func TestTwoLocal(t *testing.T) {
<-
done
c
.
Close
()
}
func
TestLocalAndUnspecified
(
t
*
testing
.
T
)
{
var
trA
Transport
var
trB
Transport
laddr
,
_
:=
ma
.
NewMultiaddr
(
"/ip4/127.0.0.1/tcp/0"
)
unspec
,
_
:=
ma
.
NewMultiaddr
(
"/ip4/0.0.0.0/tcp/0"
)
listenerA
,
err
:=
trA
.
Listen
(
laddr
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
defer
listenerA
.
Close
()
listenerB1
,
err
:=
trB
.
Listen
(
laddr
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
defer
listenerB1
.
Close
()
listenerB2
,
err
:=
trB
.
Listen
(
unspec
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
defer
listenerB2
.
Close
()
done
:=
make
(
chan
struct
{})
go
func
()
{
defer
close
(
done
)
c
,
err
:=
listenerA
.
Accept
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
c
.
Close
()
}()
c
,
err
:=
trB
.
Dial
(
listenerA
.
Multiaddr
())
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
actual
:=
c
.
LocalAddr
()
.
(
*
net
.
TCPAddr
)
.
Port
expected
:=
listenerB1
.
Addr
()
.
(
*
net
.
TCPAddr
)
.
Port
if
actual
!=
expected
{
t
.
Errorf
(
"expected to use port %d, used port %d"
,
expected
,
actual
)
}
<-
done
c
.
Close
()
// Closing the listener should reset the dialer.
listenerB1
.
Close
()
done
=
make
(
chan
struct
{})
go
func
()
{
defer
close
(
done
)
c
,
err
:=
listenerA
.
Accept
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
c
.
Close
()
}()
c
,
err
=
trB
.
Dial
(
listenerA
.
Multiaddr
())
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
actual
=
c
.
LocalAddr
()
.
(
*
net
.
TCPAddr
)
.
Port
expected
=
listenerB2
.
Addr
()
.
(
*
net
.
TCPAddr
)
.
Port
if
actual
!=
expected
{
t
.
Errorf
(
"expected to use port %d, used port %d"
,
expected
,
actual
)
}
<-
done
c
.
Close
()
}
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