cmd/devp2p/v5test: remove unsolicited NODES sleep

This commit is contained in:
Csaba Kiraly 2026-04-21 08:48:14 +00:00
parent 3fa594333c
commit 13d5001c60

View file

@ -345,34 +345,38 @@ The remote node should neither contact the injected node nor return it from late
t.Log("sending unsolicited NODES response with injected node") t.Log("sending unsolicited NODES response with injected node")
conn.write(l1, unsolicited, nil) conn.write(l1, unsolicited, nil)
const contactWindow = 500 * time.Millisecond checkNoContact := func(phase string) {
buf := make([]byte, 1280) buf := make([]byte, 1280)
if err := fakeL.SetReadDeadline(time.Now().Add(contactWindow)); err != nil { if err := fakeL.SetReadDeadline(time.Now()); err != nil {
t.Fatal(err) t.Fatal(err)
} }
if n, from, err := fakeL.ReadFrom(buf); err == nil { for {
t.Fatalf("remote contacted injected node after unsolicited NODES: %d bytes from %v", n, from) n, from, err := fakeL.ReadFrom(buf)
} else if !netutil.IsTimeout(err) { if err == nil {
t.Fatalf("waiting for unexpected contact failed: %v", err) t.Fatalf("%s: remote contacted injected node: %d bytes from %v", phase, n, from)
}
if netutil.IsTimeout(err) {
return
}
t.Fatalf("%s: checking for unexpected contact failed: %v", phase, err)
}
} }
checkNoContact("after unsolicited NODES")
dist := uint(enode.LogDist(fakeConn.localNode.ID(), s.Dest.ID())) dist := uint(enode.LogDist(fakeConn.localNode.ID(), s.Dest.ID()))
const maxAttempts = 3 const maxAttempts = 3
const retryInterval = 200 * time.Millisecond
for attempt := 1; attempt <= maxAttempts; attempt++ { for attempt := 1; attempt <= maxAttempts; attempt++ {
results, err := conn.findnode(l1, []uint{dist}) results, err := conn.findnode(l1, []uint{dist})
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
checkNoContact("during FINDNODE probes")
for _, n := range results { for _, n := range results {
if n.ID() == fakeConn.localNode.ID() { if n.ID() == fakeConn.localNode.ID() {
t.Fatalf("attempt %d: FINDNODE result contains node from unsolicited NODES response", attempt) t.Fatalf("attempt %d: FINDNODE result contains node from unsolicited NODES response", attempt)
} }
} }
t.Logf("attempt %d: injected node not returned in FINDNODE results", attempt) t.Logf("attempt %d: injected node not returned in FINDNODE results", attempt)
if attempt < maxAttempts {
time.Sleep(retryInterval)
}
} }
} }