Skip to content

Commit

Permalink
feat: Add spawnClients function
Browse files Browse the repository at this point in the history
This commit adds the `spawnClients` function. The `spawnClients` function is responsible for creating a specified number of client connections to a given address. It takes in the number of clients, address, stage harness, and logger as parameters. The function creates the clients and appends them to a slice before returning it. This new function is used in multiple places throughout the codebase to create client connections.
  • Loading branch information
ryan-gang committed Jun 13, 2024
1 parent a5de8c0 commit 983add3
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 52 deletions.
18 changes: 5 additions & 13 deletions internal/test_txn_10.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
package internal

import (
"fmt"

"github.com/codecrafters-io/redis-tester/internal/redis_executable"
resp_connection "github.com/codecrafters-io/redis-tester/internal/resp/connection"
resp_value "github.com/codecrafters-io/redis-tester/internal/resp/value"

"github.com/codecrafters-io/redis-tester/internal/instrumented_resp_connection"
"github.com/codecrafters-io/redis-tester/internal/resp_assertions"
"github.com/codecrafters-io/redis-tester/internal/test_cases"
"github.com/codecrafters-io/tester-utils/test_case_harness"
Expand All @@ -21,15 +17,11 @@ func testTxErr(stageHarness *test_case_harness.TestCaseHarness) error {

logger := stageHarness.Logger

var clients []*resp_connection.RespConnection

for i := 0; i < 2; i++ {
client, err := instrumented_resp_connection.NewFromAddr(stageHarness, "localhost:6379", fmt.Sprintf("client-%d", i+1))
if err != nil {
logFriendlyError(logger, err)
return err
}
clients = append(clients, client)
clients, err := spawnClients(2, "localhost:6379", stageHarness, logger)
if err != nil {
return err
}
for _, client := range clients {
defer client.Close()
}

Expand Down
18 changes: 5 additions & 13 deletions internal/test_txn_11.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
package internal

import (
"fmt"

"github.com/codecrafters-io/redis-tester/internal/redis_executable"
resp_connection "github.com/codecrafters-io/redis-tester/internal/resp/connection"
resp_value "github.com/codecrafters-io/redis-tester/internal/resp/value"
"github.com/codecrafters-io/redis-tester/internal/resp_assertions"

"github.com/codecrafters-io/redis-tester/internal/instrumented_resp_connection"
"github.com/codecrafters-io/redis-tester/internal/test_cases"
"github.com/codecrafters-io/tester-utils/test_case_harness"
)
Expand All @@ -21,15 +17,11 @@ func testTxMultiTx(stageHarness *test_case_harness.TestCaseHarness) error {

logger := stageHarness.Logger

var clients []*resp_connection.RespConnection

for i := 0; i < 3; i++ {
client, err := instrumented_resp_connection.NewFromAddr(stageHarness, "localhost:6379", fmt.Sprintf("client-%d", i+1))
if err != nil {
logFriendlyError(logger, err)
return err
}
clients = append(clients, client)
clients, err := spawnClients(3, "localhost:6379", stageHarness, logger)
if err != nil {
return err
}
for _, client := range clients {
defer client.Close()
}

Expand Down
18 changes: 5 additions & 13 deletions internal/test_txn_8.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
package internal

import (
"fmt"

"github.com/codecrafters-io/redis-tester/internal/redis_executable"
resp_connection "github.com/codecrafters-io/redis-tester/internal/resp/connection"
resp_value "github.com/codecrafters-io/redis-tester/internal/resp/value"
"github.com/codecrafters-io/redis-tester/internal/resp_assertions"

"github.com/codecrafters-io/redis-tester/internal/instrumented_resp_connection"
"github.com/codecrafters-io/redis-tester/internal/test_cases"
"github.com/codecrafters-io/tester-utils/test_case_harness"
)
Expand All @@ -21,15 +17,11 @@ func testTxSuccess(stageHarness *test_case_harness.TestCaseHarness) error {

logger := stageHarness.Logger

var clients []*resp_connection.RespConnection

for i := 0; i < 2; i++ {
client, err := instrumented_resp_connection.NewFromAddr(stageHarness, "localhost:6379", fmt.Sprintf("client-%d", i+1))
if err != nil {
logFriendlyError(logger, err)
return err
}
clients = append(clients, client)
clients, err := spawnClients(2, "localhost:6379", stageHarness, logger)
if err != nil {
return err
}
for _, client := range clients {
defer client.Close()
}

Expand Down
18 changes: 5 additions & 13 deletions internal/test_txn_queue.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
package internal

import (
"fmt"

"github.com/codecrafters-io/redis-tester/internal/redis_executable"
resp_connection "github.com/codecrafters-io/redis-tester/internal/resp/connection"
resp_value "github.com/codecrafters-io/redis-tester/internal/resp/value"
"github.com/codecrafters-io/redis-tester/internal/resp_assertions"

"github.com/codecrafters-io/redis-tester/internal/instrumented_resp_connection"
"github.com/codecrafters-io/redis-tester/internal/test_cases"
"github.com/codecrafters-io/tester-utils/test_case_harness"
)
Expand All @@ -21,15 +17,11 @@ func testTxQueue(stageHarness *test_case_harness.TestCaseHarness) error {

logger := stageHarness.Logger

var clients []*resp_connection.RespConnection

for i := 0; i < 2; i++ {
client, err := instrumented_resp_connection.NewFromAddr(stageHarness, "localhost:6379", fmt.Sprintf("client-%d", i+1))
if err != nil {
logFriendlyError(logger, err)
return err
}
clients = append(clients, client)
clients, err := spawnClients(2, "localhost:6379", stageHarness, logger)
if err != nil {
return err
}
for _, client := range clients {
defer client.Close()
}

Expand Down
14 changes: 14 additions & 0 deletions internal/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,17 @@ func SpawnReplicas(replicaCount int, stageHarness *test_case_harness.TestCaseHar
}
return replicas, nil
}

func spawnClients(clientCount int, addr string, stageHarness *test_case_harness.TestCaseHarness, logger *logger.Logger) ([]*resp_connection.RespConnection, error) {
var clients []*resp_connection.RespConnection

for i := 0; i < clientCount; i++ {
client, err := instrumented_resp_connection.NewFromAddr(stageHarness, addr, fmt.Sprintf("client-%d", i+1))
if err != nil {
logFriendlyError(logger, err)
return nil, err
}
clients = append(clients, client)
}
return clients, nil
}

0 comments on commit 983add3

Please sign in to comment.