cmd/devp2p/internal/v4test: fix false-positive hive test (#23966)
This PR fixes two problems in devp2p tests (and through them, hive). - Make the output more detailed about what is returned (always print packet kind). - Allow Ping response to unsolicited findnode. Without this PR, nethermind fails a hive protocol test, and I misinterpreted the result (NethermindEth/nethermind#3617). Ergo, the output was not fool-proof.
This commit is contained in:
parent
66ee9422f5
commit
ad7c90c198
@ -229,7 +229,7 @@ func PingPastExpiration(t *utesting.T) {
|
|||||||
|
|
||||||
reply, _, _ := te.read(te.l1)
|
reply, _, _ := te.read(te.l1)
|
||||||
if reply != nil {
|
if reply != nil {
|
||||||
t.Fatal("Expected no reply, got", reply)
|
t.Fatalf("Expected no reply, got %v %v", reply.Name(), reply)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,7 +247,7 @@ func WrongPacketType(t *utesting.T) {
|
|||||||
|
|
||||||
reply, _, _ := te.read(te.l1)
|
reply, _, _ := te.read(te.l1)
|
||||||
if reply != nil {
|
if reply != nil {
|
||||||
t.Fatal("Expected no reply, got", reply)
|
t.Fatalf("Expected no reply, got %v %v", reply.Name(), reply)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,9 +282,16 @@ func FindnodeWithoutEndpointProof(t *utesting.T) {
|
|||||||
rand.Read(req.Target[:])
|
rand.Read(req.Target[:])
|
||||||
te.send(te.l1, &req)
|
te.send(te.l1, &req)
|
||||||
|
|
||||||
|
for {
|
||||||
reply, _, _ := te.read(te.l1)
|
reply, _, _ := te.read(te.l1)
|
||||||
if reply != nil {
|
if reply == nil {
|
||||||
t.Fatal("Expected no response, got", reply)
|
// No response, all good
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if reply.Kind() == v4wire.PingPacket {
|
||||||
|
continue // A ping is ok, just ignore it
|
||||||
|
}
|
||||||
|
t.Fatalf("Expected no reply, got %v %v", reply.Name(), reply)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,7 +311,7 @@ func BasicFindnode(t *utesting.T) {
|
|||||||
t.Fatal("read find nodes", err)
|
t.Fatal("read find nodes", err)
|
||||||
}
|
}
|
||||||
if reply.Kind() != v4wire.NeighborsPacket {
|
if reply.Kind() != v4wire.NeighborsPacket {
|
||||||
t.Fatal("Expected neighbors, got", reply.Name())
|
t.Fatalf("Expected neighbors, got %v %v", reply.Name(), reply)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -341,7 +348,7 @@ func UnsolicitedNeighbors(t *utesting.T) {
|
|||||||
t.Fatal("read find nodes", err)
|
t.Fatal("read find nodes", err)
|
||||||
}
|
}
|
||||||
if reply.Kind() != v4wire.NeighborsPacket {
|
if reply.Kind() != v4wire.NeighborsPacket {
|
||||||
t.Fatal("Expected neighbors, got", reply.Name())
|
t.Fatalf("Expected neighbors, got %v %v", reply.Name(), reply)
|
||||||
}
|
}
|
||||||
nodes := reply.(*v4wire.Neighbors).Nodes
|
nodes := reply.(*v4wire.Neighbors).Nodes
|
||||||
if contains(nodes, encFakeKey) {
|
if contains(nodes, encFakeKey) {
|
||||||
|
Loading…
Reference in New Issue
Block a user