Skip to content

Commit f00698e

Browse files
committed
Refactor testListBlpopNoTimeout to use different clients and update response assertion method. Introduce AssertResponsesInReverseOrder for handling response assertions in reverse. Update logging for no response expectations in various test fixtures.
1 parent ab21191 commit f00698e

File tree

7 files changed

+611
-597
lines changed

7 files changed

+611
-597
lines changed

internal/test_cases/blocking_client_group_test_case.go

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -56,20 +56,37 @@ func (t *BlockingClientGroupTestCase) SendBlockingCommands() error {
5656

5757
func (t *BlockingClientGroupTestCase) AssertResponses(logger *logger.Logger) error {
5858
for _, clientWithExpectedResponse := range t.clientsWithExpectedResponses {
59-
clientLogger := clientWithExpectedResponse.Client.GetLogger()
60-
if clientWithExpectedResponse.Assertion == nil {
61-
testCase := NoResponseTestCase{}
62-
if err := testCase.Run(clientWithExpectedResponse.Client); err != nil {
63-
return err
64-
}
65-
} else {
66-
clientLogger.Infof("Expecting response of %s command", clientWithExpectedResponse.Command)
67-
testCase := ReceiveValueTestCase{
68-
Assertion: *clientWithExpectedResponse.Assertion,
69-
}
70-
if err := testCase.Run(clientWithExpectedResponse.Client, logger); err != nil {
71-
return err
72-
}
59+
if err := t.assertResponse(&clientWithExpectedResponse, logger); err != nil {
60+
return err
61+
}
62+
}
63+
return nil
64+
}
65+
66+
func (t *BlockingClientGroupTestCase) AssertResponsesInReverseOrder(logger *logger.Logger) error {
67+
for i := len(t.clientsWithExpectedResponses) - 1; i >= 0; i-- {
68+
clientWithExpectedResponse := t.clientsWithExpectedResponses[i]
69+
if err := t.assertResponse(&clientWithExpectedResponse, logger); err != nil {
70+
return err
71+
}
72+
}
73+
return nil
74+
}
75+
76+
func (t *BlockingClientGroupTestCase) assertResponse(clientWithExpectedResponse *clientWithExpectedResponse, logger *logger.Logger) error {
77+
clientLogger := clientWithExpectedResponse.Client.GetLogger()
78+
if clientWithExpectedResponse.Assertion == nil {
79+
testCase := NoResponseTestCase{}
80+
if err := testCase.Run(clientWithExpectedResponse.Client); err != nil {
81+
return err
82+
}
83+
} else {
84+
clientLogger.Infof("Expecting response of %s command", clientWithExpectedResponse.Command)
85+
testCase := ReceiveValueTestCase{
86+
Assertion: *clientWithExpectedResponse.Assertion,
87+
}
88+
if err := testCase.Run(clientWithExpectedResponse.Client, logger); err != nil {
89+
return err
7390
}
7491
}
7592
return nil

internal/test_helpers/fixtures/geospatial/pass

Lines changed: 152 additions & 152 deletions
Large diffs are not rendered by default.

internal/test_helpers/fixtures/lists/blpop_wrong_client

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,20 @@ Debug = true
44
[tester::#EC3] $ ./spawn_redis_server.sh
55
[your_program] Logs from your program will appear here!
66
[your_program] Redis server listening on 0.0.0.0:6379
7-
[tester::#EC3] [client-1] Connected (port 63777 -> port 6379)
8-
[tester::#EC3] [client-2] Connected (port 63778 -> port 6379)
9-
[tester::#EC3] [client-3] Connected (port 63779 -> port 6379)
7+
[tester::#EC3] [client-1] Connected (port 59889 -> port 6379)
8+
[tester::#EC3] [client-2] Connected (port 59890 -> port 6379)
9+
[tester::#EC3] [client-3] Connected (port 59891 -> port 6379)
10+
[tester::#EC3] [client-1] $ redis-cli BLPOP pear 0
11+
[tester::#EC3] [client-1] Sent bytes: "*3\r\n$5\r\nBLPOP\r\n$4\r\npear\r\n$1\r\n0\r\n"
1012
[tester::#EC3] [client-2] $ redis-cli BLPOP pear 0
1113
[tester::#EC3] [client-2] Sent bytes: "*3\r\n$5\r\nBLPOP\r\n$4\r\npear\r\n$1\r\n0\r\n"
12-
[tester::#EC3] [client-3] $ redis-cli BLPOP pear 0
13-
[tester::#EC3] [client-3] Sent bytes: "*3\r\n$5\r\nBLPOP\r\n$4\r\npear\r\n$1\r\n0\r\n"
14-
[tester::#EC3] [client-1] $ redis-cli RPUSH pear orange
15-
[tester::#EC3] [client-1] Sent bytes: "*3\r\n$5\r\nRPUSH\r\n$4\r\npear\r\n$6\r\norange\r\n"
16-
[tester::#EC3] [client-1] Received bytes: ":1\r\n"
17-
[tester::#EC3] [client-1] Received RESP integer: 1
18-
[tester::#EC3] [client-1] ✔︎ Received 1
19-
[tester::#EC3] [client-2] Expecting response of BLPOP command
20-
[tester::#EC3] Received: "" (no content received)
21-
[tester::#EC3]  ^ error
22-
[tester::#EC3] Error: Expected start of a new RESP2 value (either +, -, :, $ or *)
14+
[tester::#EC3] [client-3] $ redis-cli RPUSH pear orange
15+
[tester::#EC3] [client-3] Sent bytes: "*3\r\n$5\r\nRPUSH\r\n$4\r\npear\r\n$6\r\norange\r\n"
16+
[tester::#EC3] [client-3] Received bytes: ":1\r\n"
17+
[tester::#EC3] [client-3] Received RESP integer: 1
18+
[tester::#EC3] [client-3] ✔︎ Received 1
19+
[tester::#EC3] [client-2] Expecting no response
20+
[tester::#EC3] client-2 received unexpected response: "*2\r\n$4\r\npear\r\n$6\r\norange\r\n"
2321
[tester::#EC3] Test failed
2422
[tester::#EC3] Terminating program
2523
[tester::#EC3] Program terminated successfully

0 commit comments

Comments
 (0)