Skip to content

Commit a2a284f

Browse files
authored
Merge pull request #201 from codecrafters-io/andy/fix
Add small delays between BlockingCommands + add debug logs for "[client-n] Connected (port a -> port b)"
2 parents 6d8e757 + 48a9b5d commit a2a284f

File tree

7 files changed

+355
-288
lines changed

7 files changed

+355
-288
lines changed

internal/stages_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ func normalizeTesterOutput(testerOutput []byte) []byte {
151151
"info_replication_bytes": {regexp.MustCompile(`"\$[0-9]+\\r\\n# Replication\\r\\n[^"]+"`)},
152152
"rdb_keys": {regexp.MustCompile(`\[tester::#JW4\] .*Received .*`), regexp.MustCompile(`\[tester::#JW4\].*"(apple|orange|banana|pear|grape|pineapple|mango|strawberry|raspberry|blueberry)",?.*`)},
153153
"hexdump": {regexp.MustCompile(`[0-9a-fA-F]{4} \| [0-9a-fA-F ]{47} \| .{0,16}`)},
154+
"client_connected": {regexp.MustCompile(`Connected \(port \d+ -> port \d+\)`)},
154155
}
155156

156157
for replacement, regexes := range replacements {

internal/test_cases/blocking_client_group_test_case.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package test_cases
22

33
import (
4+
"time"
5+
46
"github.com/codecrafters-io/redis-tester/internal/instrumented_resp_connection"
57
"github.com/codecrafters-io/redis-tester/internal/resp_assertions"
68
"github.com/codecrafters-io/tester-utils/logger"
@@ -46,6 +48,7 @@ func (t *BlockingClientGroupTestCase) SendBlockingCommands() error {
4648
if err := clientWithExpectedResponse.Client.SendCommand(clientWithExpectedResponse.Command, clientWithExpectedResponse.Args...); err != nil {
4749
return err
4850
}
51+
time.Sleep(1 * time.Millisecond) // Ensure server receives commands in order
4952
}
5053

5154
return nil

internal/test_helpers/fixtures/lists/blpop_wrong_client

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ 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 54886 -> port 6379)
8+
[tester::#EC3] [client-2] Connected (port 54900 -> port 6379)
9+
[tester::#EC3] [client-3] Connected (port 54916 -> port 6379)
710
[tester::#EC3] [client-2] $ redis-cli BLPOP pear 0
811
[tester::#EC3] [client-2] Sent bytes: "*3\r\n$5\r\nBLPOP\r\n$4\r\npear\r\n$1\r\n0\r\n"
912
[tester::#EC3] [client-3] $ redis-cli BLPOP pear 0

internal/test_helpers/fixtures/lists/pass

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

internal/test_helpers/fixtures/pubsub/pass

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

internal/test_helpers/fixtures/transactions/pass

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

internal/util.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package internal
22

33
import (
44
"fmt"
5+
"net"
56
"os"
67
"path/filepath"
78
"strings"
@@ -83,8 +84,15 @@ func SpawnClients(clientCount int, addr string, stageHarness *test_case_harness.
8384
logFriendlyError(logger, err)
8485
return nil, err
8586
}
87+
88+
clientLogger := client.GetLogger()
89+
clientPort := client.Conn.LocalAddr().(*net.TCPAddr).Port
90+
serverPort := client.Conn.RemoteAddr().(*net.TCPAddr).Port
91+
clientLogger.Debugf("Connected (port %d -> port %d)", clientPort, serverPort)
92+
8693
clients = append(clients, client)
8794
}
95+
8896
return clients, nil
8997
}
9098

0 commit comments

Comments
 (0)