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
1257b87a
Unverified
Commit
1257b87a
authored
Jun 07, 2018
by
Steven Allen
Committed by
GitHub
Jun 07, 2018
Browse files
Merge pull request #346 from libp2p/bugs/mock-stream-latency
Add test which demonstrates how Mocknet latency works
parents
c5dbe224
2f001009
Changes
1
Show whitespace changes
Inline
Side-by-side
p2p/net/mock/mock_test.go
View file @
1257b87a
...
@@ -582,3 +582,57 @@ func TestLimitedStreams(t *testing.T) {
...
@@ -582,3 +582,57 @@ func TestLimitedStreams(t *testing.T) {
t
.
Fatal
(
"Expected 2ish seconds but got "
,
time
.
Since
(
before
))
t
.
Fatal
(
"Expected 2ish seconds but got "
,
time
.
Since
(
before
))
}
}
}
}
func
TestStreamsWithLatency
(
t
*
testing
.
T
)
{
latency
:=
time
.
Millisecond
*
500
mn
,
err
:=
WithNPeers
(
context
.
Background
(),
2
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
// configure the Mocknet with some latency and link/connect its peers
mn
.
SetLinkDefaults
(
LinkOptions
{
Latency
:
latency
})
mn
.
LinkAll
()
mn
.
ConnectAllButSelf
()
msg
:=
[]
byte
(
"ping"
)
mln
:=
len
(
msg
)
var
wg
sync
.
WaitGroup
// we'll write once to a single stream
wg
.
Add
(
1
)
handler
:=
func
(
s
inet
.
Stream
)
{
b
:=
make
([]
byte
,
mln
)
if
_
,
err
:=
io
.
ReadFull
(
s
,
b
);
err
!=
nil
{
t
.
Fatal
(
err
)
}
wg
.
Done
()
s
.
Close
()
}
mn
.
Hosts
()[
0
]
.
SetStreamHandler
(
protocol
.
TestingID
,
handler
)
mn
.
Hosts
()[
1
]
.
SetStreamHandler
(
protocol
.
TestingID
,
handler
)
s
,
err
:=
mn
.
Hosts
()[
0
]
.
NewStream
(
context
.
Background
(),
mn
.
Hosts
()[
1
]
.
ID
(),
protocol
.
TestingID
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
// writing to the stream will be subject to our configured latency
checkpoint
:=
time
.
Now
()
if
_
,
err
:=
s
.
Write
(
msg
);
err
!=
nil
{
t
.
Fatal
(
err
)
}
wg
.
Wait
()
delta
:=
time
.
Since
(
checkpoint
)
tolerance
:=
time
.
Millisecond
*
100
if
!
within
(
delta
,
latency
,
tolerance
)
{
t
.
Fatalf
(
"Expected write to take ~%s (+/- %s), but took %s"
,
latency
.
String
(),
tolerance
.
String
(),
delta
.
String
())
}
}
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