mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-26 06:36:43 +00:00
cmd/devp2p/internal/ethtest: invert test to fail if client disconnects
This commit is contained in:
parent
c448e189b8
commit
843c3d67ff
1 changed files with 6 additions and 14 deletions
|
|
@ -175,7 +175,6 @@ to check if the node disconnects after receiving multiple invalid requests.`)
|
||||||
|
|
||||||
// Create request with max uint64 value for a nonexistent block
|
// Create request with max uint64 value for a nonexistent block
|
||||||
badReq := ð.GetBlockHeadersPacket{
|
badReq := ð.GetBlockHeadersPacket{
|
||||||
RequestId: uint64(1),
|
|
||||||
GetBlockHeadersRequest: ð.GetBlockHeadersRequest{
|
GetBlockHeadersRequest: ð.GetBlockHeadersRequest{
|
||||||
Origin: eth.HashOrNumber{Number: ^uint64(0)},
|
Origin: eth.HashOrNumber{Number: ^uint64(0)},
|
||||||
Amount: 1,
|
Amount: 1,
|
||||||
|
|
@ -184,29 +183,22 @@ to check if the node disconnects after receiving multiple invalid requests.`)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send the request 10 times
|
// Send request 10 times. Some clients are lient on the first few invalids.
|
||||||
for i := 0; i < 10; i++ {
|
for i := 0; i < 10; i++ {
|
||||||
|
badReq.RequestId = uint64(i)
|
||||||
if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, badReq); err != nil {
|
if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, badReq); err != nil {
|
||||||
if err == errDisc {
|
if err == errDisc {
|
||||||
t.Logf("peer disconnected after %d requests", i+1)
|
t.Fatalf("peer disconnected after %d requests", i+1)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
t.Fatalf("write failed: %v", err)
|
t.Fatalf("write failed: %v", err)
|
||||||
}
|
}
|
||||||
time.Sleep(10 * time.Millisecond)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if peer disconnects
|
// Check if peer disconnects at the end.
|
||||||
code, _, err := conn.Read()
|
code, _, err := conn.Read()
|
||||||
if err == errDisc {
|
if err == errDisc || code == discMsg {
|
||||||
t.Logf("peer disconnected after all requests")
|
t.Fatal("peer improperly disconnected")
|
||||||
return
|
|
||||||
}
|
}
|
||||||
if code == discMsg {
|
|
||||||
t.Logf("received disconnect message")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
t.Fatalf("peer did not disconnect after receiving invalid requests")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Suite) TestSimultaneousRequests(t *utesting.T) {
|
func (s *Suite) TestSimultaneousRequests(t *utesting.T) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue