Skip to content

Commit 0f3a1e7

Browse files
authored
cmd/devp2p/internal/ethtest: send simultaneous requests on one connection (ethereum#22801)
This changes the SimultaneousRequests test to send the requests from the same connection, as it doesn't really make sense to test whether a node can respond to two requests with different request IDs from separate connections.
1 parent 41671d4 commit 0f3a1e7

File tree

1 file changed

+21
-20
lines changed

1 file changed

+21
-20
lines changed

cmd/devp2p/internal/ethtest/eth66_suite.go

+21-20
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,8 @@ func (s *Suite) TestGetBlockHeaders_66(t *utesting.T) {
9191
// headers per request.
9292
func (s *Suite) TestSimultaneousRequests_66(t *utesting.T) {
9393
// create two connections
94-
conn1, conn2 := s.setupConnection66(t), s.setupConnection66(t)
95-
defer conn1.Close()
96-
defer conn2.Close()
94+
conn := s.setupConnection66(t)
95+
defer conn.Close()
9796
// create two requests
9897
req1 := &eth.GetBlockHeadersPacket66{
9998
RequestId: 111,
@@ -117,27 +116,29 @@ func (s *Suite) TestSimultaneousRequests_66(t *utesting.T) {
117116
Reverse: false,
118117
},
119118
}
120-
// wait for headers for first request
121-
headerChan := make(chan BlockHeaders, 1)
122-
go func(headers chan BlockHeaders) {
123-
recvHeaders, err := s.getBlockHeaders66(conn1, req1, req1.RequestId)
124-
if err != nil {
125-
t.Fatalf("could not get block headers: %v", err)
126-
return
127-
}
128-
headers <- recvHeaders
129-
}(headerChan)
130-
// check headers of second request
131-
headers1, err := s.getBlockHeaders66(conn2, req2, req2.RequestId)
119+
// write first request
120+
if err := conn.write66(req1, GetBlockHeaders{}.Code()); err != nil {
121+
t.Fatalf("failed to write to connection: %v", err)
122+
}
123+
// write second request
124+
if err := conn.write66(req2, GetBlockHeaders{}.Code()); err != nil {
125+
t.Fatalf("failed to write to connection: %v", err)
126+
}
127+
// wait for responses
128+
headers1, err := s.waitForBlockHeadersResponse66(conn, req1.RequestId)
132129
if err != nil {
133-
t.Fatalf("could not get block headers: %v", err)
130+
t.Fatalf("error while waiting for block headers: %v", err)
131+
}
132+
headers2, err := s.waitForBlockHeadersResponse66(conn, req2.RequestId)
133+
if err != nil {
134+
t.Fatalf("error while waiting for block headers: %v", err)
134135
}
136+
// check headers of both responses
135137
if !headersMatch(t, s.chain, headers1) {
136-
t.Fatal("wrong header(s) in response to req2")
138+
t.Fatalf("wrong header(s) in response to req1: got %v", headers1)
137139
}
138-
// check headers of first request
139-
if !headersMatch(t, s.chain, <-headerChan) {
140-
t.Fatal("wrong header(s) in response to req1")
140+
if !headersMatch(t, s.chain, headers2) {
141+
t.Fatalf("wrong header(s) in response to req2: got %v", headers2)
141142
}
142143
}
143144

0 commit comments

Comments
 (0)