From 0bd8bac118e7d1d8a6a78006c3ada0e48a21ea6a Mon Sep 17 00:00:00 2001 From: Ryan Gang Date: Thu, 13 Jun 2024 14:53:20 +0530 Subject: [PATCH] tests: add fixtures for transaction stages --- internal/stages_test.go | 7 + .../test_helpers/fixtures/transactions/pass | 1756 +++++++++++++++++ 2 files changed, 1763 insertions(+) create mode 100644 internal/test_helpers/fixtures/transactions/pass diff --git a/internal/stages_test.go b/internal/stages_test.go index ccd68693..da7f4348 100644 --- a/internal/stages_test.go +++ b/internal/stages_test.go @@ -89,6 +89,13 @@ func TestStages(t *testing.T) { StdoutFixturePath: "./test_helpers/fixtures/streams/pass", NormalizeOutputFunc: normalizeTesterOutput, }, + "transactions_pass": { + UntilStageSlug: "jf8", + CodePath: "./test_helpers/pass_all", + ExpectedExitCode: 0, + StdoutFixturePath: "./test_helpers/fixtures/transactions/pass", + NormalizeOutputFunc: normalizeTesterOutput, + }, } tester_utils_testing.TestTesterOutput(t, testerDefinition, testCases) diff --git a/internal/test_helpers/fixtures/transactions/pass b/internal/test_helpers/fixtures/transactions/pass new file mode 100644 index 00000000..be7d29be --- /dev/null +++ b/internal/test_helpers/fixtures/transactions/pass @@ -0,0 +1,1756 @@ +Debug = true + +[stage-55] Running tests for Stage #55: jf8 +[stage-55] $ ./spawn_redis_server.sh +[stage-55] client-1: $ redis-cli SET bar 7 +[stage-55] client-1: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbar\r\n$1\r\n7\r\n" +[stage-55] client-1: Received bytes: "+OK\r\n" +[stage-55] client-1: Received RESP simple string: "OK" +[stage-55] Received "OK" +[stage-55] client-1: > INCR foo +[stage-55] client-1: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-55] client-1: Received bytes: ":1\r\n" +[stage-55] client-1: Received RESP integer: 1 +[stage-55] Received 1 +[stage-55] client-2: $ redis-cli SET bar 7 +[stage-55] client-2: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbar\r\n$1\r\n7\r\n" +[stage-55] client-2: Received bytes: "+OK\r\n" +[stage-55] client-2: Received RESP simple string: "OK" +[stage-55] Received "OK" +[stage-55] client-2: > INCR foo +[stage-55] client-2: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-55] client-2: Received bytes: ":2\r\n" +[stage-55] client-2: Received RESP integer: 2 +[stage-55] Received 2 +[stage-55] client-3: $ redis-cli SET bar 7 +[stage-55] client-3: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbar\r\n$1\r\n7\r\n" +[stage-55] client-3: Received bytes: "+OK\r\n" +[stage-55] client-3: Received RESP simple string: "OK" +[stage-55] Received "OK" +[stage-55] client-3: > INCR foo +[stage-55] client-3: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-55] client-3: Received bytes: ":3\r\n" +[stage-55] client-3: Received RESP integer: 3 +[stage-55] Received 3 +[stage-55] client-1: > MULTI +[stage-55] client-1: Sent bytes: "*1\r\n$5\r\nMULTI\r\n" +[stage-55] client-1: Received bytes: "+OK\r\n" +[stage-55] client-1: Received RESP simple string: "OK" +[stage-55] Received "OK" +[stage-55] Sent #0 command +[stage-55] client-1: > INCR foo +[stage-55] client-1: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-55] client-1: Received bytes: "+QUEUED\r\n" +[stage-55] client-1: Received RESP simple string: "QUEUED" +[stage-55] Received "QUEUED" +[stage-55] Sent #1 command +[stage-55] client-1: > INCR bar +[stage-55] client-1: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nbar\r\n" +[stage-55] client-1: Received bytes: "+QUEUED\r\n" +[stage-55] client-1: Received RESP simple string: "QUEUED" +[stage-55] Received "QUEUED" +[stage-55] client-2: > MULTI +[stage-55] client-2: Sent bytes: "*1\r\n$5\r\nMULTI\r\n" +[stage-55] client-2: Received bytes: "+OK\r\n" +[stage-55] client-2: Received RESP simple string: "OK" +[stage-55] Received "OK" +[stage-55] Sent #0 command +[stage-55] client-2: > INCR foo +[stage-55] client-2: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-55] client-2: Received bytes: "+QUEUED\r\n" +[stage-55] client-2: Received RESP simple string: "QUEUED" +[stage-55] Received "QUEUED" +[stage-55] Sent #1 command +[stage-55] client-2: > INCR bar +[stage-55] client-2: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nbar\r\n" +[stage-55] client-2: Received bytes: "+QUEUED\r\n" +[stage-55] client-2: Received RESP simple string: "QUEUED" +[stage-55] Received "QUEUED" +[stage-55] client-3: > MULTI +[stage-55] client-3: Sent bytes: "*1\r\n$5\r\nMULTI\r\n" +[stage-55] client-3: Received bytes: "+OK\r\n" +[stage-55] client-3: Received RESP simple string: "OK" +[stage-55] Received "OK" +[stage-55] Sent #0 command +[stage-55] client-3: > INCR foo +[stage-55] client-3: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-55] client-3: Received bytes: "+QUEUED\r\n" +[stage-55] client-3: Received RESP simple string: "QUEUED" +[stage-55] Received "QUEUED" +[stage-55] Sent #1 command +[stage-55] client-3: > INCR bar +[stage-55] client-3: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nbar\r\n" +[stage-55] client-3: Received bytes: "+QUEUED\r\n" +[stage-55] client-3: Received RESP simple string: "QUEUED" +[stage-55] Received "QUEUED" +[stage-55] client-1: > EXEC +[stage-55] client-1: Sent bytes: "*1\r\n$4\r\nEXEC\r\n" +[stage-55] client-1: Received bytes: "*2\r\n:4\r\n:8\r\n" +[stage-55] client-1: Received RESP array: [4, 8] +[stage-55] Received [4, 8] +[stage-55] client-2: > EXEC +[stage-55] client-2: Sent bytes: "*1\r\n$4\r\nEXEC\r\n" +[stage-55] client-2: Received bytes: "*2\r\n:5\r\n:9\r\n" +[stage-55] client-2: Received RESP array: [5, 9] +[stage-55] Received [5, 9] +[stage-55] client-3: > EXEC +[stage-55] client-3: Sent bytes: "*1\r\n$4\r\nEXEC\r\n" +[stage-55] client-3: Received bytes: "*2\r\n:6\r\n:10\r\n" +[stage-55] client-3: Received RESP array: [6, 10] +[stage-55] Received [6, 10] +[stage-55] Test passed. +[stage-55] Terminating program +[stage-55] Program terminated successfully + +[stage-54] Running tests for Stage #54: sg9 +[stage-54] $ ./spawn_redis_server.sh +[stage-54] client-1: $ redis-cli SET foo abc +[stage-54] client-1: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\nabc\r\n" +[stage-54] client-1: Received bytes: "+OK\r\n" +[stage-54] client-1: Received RESP simple string: "OK" +[stage-54] Received "OK" +[stage-54] client-1: > SET bar 7 +[stage-54] client-1: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbar\r\n$1\r\n7\r\n" +[stage-54] client-1: Received bytes: "+OK\r\n" +[stage-54] client-1: Received RESP simple string: "OK" +[stage-54] Received "OK" +[stage-54] client-1: > MULTI +[stage-54] client-1: Sent bytes: "*1\r\n$5\r\nMULTI\r\n" +[stage-54] client-1: Received bytes: "+OK\r\n" +[stage-54] client-1: Received RESP simple string: "OK" +[stage-54] Received "OK" +[stage-54] Sent #0 command +[stage-54] client-1: > INCR foo +[stage-54] client-1: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-54] client-1: Received bytes: "+QUEUED\r\n" +[stage-54] client-1: Received RESP simple string: "QUEUED" +[stage-54] Received "QUEUED" +[stage-54] Sent #1 command +[stage-54] client-1: > INCR bar +[stage-54] client-1: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nbar\r\n" +[stage-54] client-1: Received bytes: "+QUEUED\r\n" +[stage-54] client-1: Received RESP simple string: "QUEUED" +[stage-54] Received "QUEUED" +[stage-54] client-1: > EXEC +[stage-54] client-1: Sent bytes: "*1\r\n$4\r\nEXEC\r\n" +[stage-54] client-1: Received bytes: "*2\r\n-ERR value is not an integer or out of range\r\n:8\r\n" +[stage-54] client-1: Received RESP array: ["ERR: ERR value is not an integer or out of range", 8] +[stage-54] Received ["ERR: ERR value is not an integer or out of range", 8] +[stage-54] client-2: $ redis-cli GET bar +[stage-54] client-2: Sent bytes: "*2\r\n$3\r\nGET\r\n$3\r\nbar\r\n" +[stage-54] client-2: Received bytes: "$1\r\n8\r\n" +[stage-54] client-2: Received RESP bulk string: "8" +[stage-54] Received "8" +[stage-54] client-2: > GET foo +[stage-54] client-2: Sent bytes: "*2\r\n$3\r\nGET\r\n$3\r\nfoo\r\n" +[stage-54] client-2: Received bytes: "$3\r\nabc\r\n" +[stage-54] client-2: Received RESP bulk string: "abc" +[stage-54] Received "abc" +[stage-54] Test passed. +[stage-54] Terminating program +[stage-54] Program terminated successfully + +[stage-53] Running tests for Stage #53: rl9 +[stage-53] $ ./spawn_redis_server.sh +[stage-53] client: $ redis-cli SET bar 42 +[stage-53] client: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbar\r\n$2\r\n42\r\n" +[stage-53] client: Received bytes: "+OK\r\n" +[stage-53] client: Received RESP simple string: "OK" +[stage-53] Received "OK" +[stage-53] client: > MULTI +[stage-53] client: Sent bytes: "*1\r\n$5\r\nMULTI\r\n" +[stage-53] client: Received bytes: "+OK\r\n" +[stage-53] client: Received RESP simple string: "OK" +[stage-53] Received "OK" +[stage-53] Sent #0 command +[stage-53] client: > SET foo 41 +[stage-53] client: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$2\r\n41\r\n" +[stage-53] client: Received bytes: "+QUEUED\r\n" +[stage-53] client: Received RESP simple string: "QUEUED" +[stage-53] Received "QUEUED" +[stage-53] Sent #1 command +[stage-53] client: > INCR foo +[stage-53] client: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-53] client: Received bytes: "+QUEUED\r\n" +[stage-53] client: Received RESP simple string: "QUEUED" +[stage-53] Received "QUEUED" +[stage-53] client: > DISCARD +[stage-53] client: Sent bytes: "*1\r\n$7\r\nDISCARD\r\n" +[stage-53] client: Received bytes: "+OK\r\n" +[stage-53] client: Received RESP simple string: "OK" +[stage-53] Received "OK" +[stage-53] client: > GET foo +[stage-53] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$3\r\nfoo\r\n" +[stage-53] client: Received bytes: "$-1\r\n" +[stage-53] client: Received RESP null bulk string: "$-1\r\n" +[stage-53] Received "$-1\r\n" +[stage-53] client: > GET bar +[stage-53] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$3\r\nbar\r\n" +[stage-53] client: Received bytes: "$2\r\n42\r\n" +[stage-53] client: Received RESP bulk string: "42" +[stage-53] Received "42" +[stage-53] client: > DISCARD +[stage-53] client: Sent bytes: "*1\r\n$7\r\nDISCARD\r\n" +[stage-53] client: Received bytes: "-ERR DISCARD without MULTI\r\n" +[stage-53] client: Received RESP error: "ERR: ERR DISCARD without MULTI" +[stage-53] Received "ERR: ERR DISCARD without MULTI" +[stage-53] Test passed. +[stage-53] Terminating program +[stage-53] Program terminated successfully + +[stage-52] Running tests for Stage #52: fy6 +[stage-52] $ ./spawn_redis_server.sh +[stage-52] client-1: $ redis-cli MULTI +[stage-52] client-1: Sent bytes: "*1\r\n$5\r\nMULTI\r\n" +[stage-52] client-1: Received bytes: "+OK\r\n" +[stage-52] client-1: Received RESP simple string: "OK" +[stage-52] Received "OK" +[stage-52] Sent #0 command +[stage-52] client-1: > SET foo 6 +[stage-52] client-1: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$1\r\n6\r\n" +[stage-52] client-1: Received bytes: "+QUEUED\r\n" +[stage-52] client-1: Received RESP simple string: "QUEUED" +[stage-52] Received "QUEUED" +[stage-52] Sent #1 command +[stage-52] client-1: > INCR foo +[stage-52] client-1: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-52] client-1: Received bytes: "+QUEUED\r\n" +[stage-52] client-1: Received RESP simple string: "QUEUED" +[stage-52] Received "QUEUED" +[stage-52] Sent #2 command +[stage-52] client-1: > INCR bar +[stage-52] client-1: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nbar\r\n" +[stage-52] client-1: Received bytes: "+QUEUED\r\n" +[stage-52] client-1: Received RESP simple string: "QUEUED" +[stage-52] Received "QUEUED" +[stage-52] Sent #3 command +[stage-52] client-1: > GET bar +[stage-52] client-1: Sent bytes: "*2\r\n$3\r\nGET\r\n$3\r\nbar\r\n" +[stage-52] client-1: Received bytes: "+QUEUED\r\n" +[stage-52] client-1: Received RESP simple string: "QUEUED" +[stage-52] Received "QUEUED" +[stage-52] client-1: > EXEC +[stage-52] client-1: Sent bytes: "*1\r\n$4\r\nEXEC\r\n" +[stage-52] client-1: Received bytes: "*4\r\n+OK\r\n:7\r\n:1\r\n$1\r\n1\r\n" +[stage-52] client-1: Received RESP array: ["OK", 7, 1, "1"] +[stage-52] Received ["OK", 7, 1, "1"] +[stage-52] client-2: $ redis-cli GET foo +[stage-52] client-2: Sent bytes: "*2\r\n$3\r\nGET\r\n$3\r\nfoo\r\n" +[stage-52] client-2: Received bytes: "$1\r\n7\r\n" +[stage-52] client-2: Received RESP bulk string: "7" +[stage-52] Received "7" +[stage-52] Test passed. +[stage-52] Terminating program +[stage-52] Program terminated successfully + +[stage-51] Running tests for Stage #51: rs9 +[stage-51] $ ./spawn_redis_server.sh +[stage-51] client-1: $ redis-cli MULTI +[stage-51] client-1: Sent bytes: "*1\r\n$5\r\nMULTI\r\n" +[stage-51] client-1: Received bytes: "+OK\r\n" +[stage-51] client-1: Received RESP simple string: "OK" +[stage-51] Received "OK" +[stage-51] Sent #0 command +[stage-51] client-1: > SET foo 41 +[stage-51] client-1: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$2\r\n41\r\n" +[stage-51] client-1: Received bytes: "+QUEUED\r\n" +[stage-51] client-1: Received RESP simple string: "QUEUED" +[stage-51] Received "QUEUED" +[stage-51] Sent #1 command +[stage-51] client-1: > INCR foo +[stage-51] client-1: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-51] client-1: Received bytes: "+QUEUED\r\n" +[stage-51] client-1: Received RESP simple string: "QUEUED" +[stage-51] Received "QUEUED" +[stage-51] client-2: $ redis-cli GET foo +[stage-51] client-2: Sent bytes: "*2\r\n$3\r\nGET\r\n$3\r\nfoo\r\n" +[stage-51] client-2: Received bytes: "$-1\r\n" +[stage-51] client-2: Received RESP null bulk string: "$-1\r\n" +[stage-51] Received "$-1\r\n" +[stage-51] Test passed. +[stage-51] Terminating program +[stage-51] Program terminated successfully + +[stage-50] Running tests for Stage #50: we1 +[stage-50] $ ./spawn_redis_server.sh +[stage-50] client: $ redis-cli MULTI +[stage-50] client: Sent bytes: "*1\r\n$5\r\nMULTI\r\n" +[stage-50] client: Received bytes: "+OK\r\n" +[stage-50] client: Received RESP simple string: "OK" +[stage-50] Received "OK" +[stage-50] client: > EXEC +[stage-50] client: Sent bytes: "*1\r\n$4\r\nEXEC\r\n" +[stage-50] client: Received bytes: "*0\r\n" +[stage-50] client: Received RESP array: [] +[stage-50] Received [] +[stage-50] client: > EXEC +[stage-50] client: Sent bytes: "*1\r\n$4\r\nEXEC\r\n" +[stage-50] client: Received bytes: "-ERR EXEC without MULTI\r\n" +[stage-50] client: Received RESP error: "ERR: ERR EXEC without MULTI" +[stage-50] Received "ERR: ERR EXEC without MULTI" +[stage-50] Test passed. +[stage-50] Terminating program +[stage-50] Program terminated successfully + +[stage-49] Running tests for Stage #49: lo4 +[stage-49] $ ./spawn_redis_server.sh +[stage-49] client: $ redis-cli EXEC +[stage-49] client: Sent bytes: "*1\r\n$4\r\nEXEC\r\n" +[stage-49] client: Received bytes: "-ERR EXEC without MULTI\r\n" +[stage-49] client: Received RESP error: "ERR: ERR EXEC without MULTI" +[stage-49] Received "ERR: ERR EXEC without MULTI" +[stage-49] Test passed. +[stage-49] Terminating program +[stage-49] Program terminated successfully + +[stage-48] Running tests for Stage #48: pn0 +[stage-48] $ ./spawn_redis_server.sh +[stage-48] client: $ redis-cli MULTI +[stage-48] client: Sent bytes: "*1\r\n$5\r\nMULTI\r\n" +[stage-48] client: Received bytes: "+OK\r\n" +[stage-48] client: Received RESP simple string: "OK" +[stage-48] Received "OK" +[stage-48] Test passed. +[stage-48] Terminating program +[stage-48] Program terminated successfully + +[stage-47] Running tests for Stage #47: mk1 +[stage-47] $ ./spawn_redis_server.sh +[stage-47] client: $ redis-cli SET foo xyz +[stage-47] client: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\nxyz\r\n" +[stage-47] client: Received bytes: "+OK\r\n" +[stage-47] client: Received RESP simple string: "OK" +[stage-47] Received "OK" +[stage-47] client: > INCR foo +[stage-47] client: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-47] client: Received bytes: "-ERR value is not an integer or out of range\r\n" +[stage-47] client: Received RESP error: "ERR: ERR value is not an integer or out of range" +[stage-47] Received "ERR: ERR value is not an integer or out of range" +[stage-47] Test passed. +[stage-47] Terminating program +[stage-47] Program terminated successfully + +[stage-46] Running tests for Stage #46: lz8 +[stage-46] $ ./spawn_redis_server.sh +[stage-46] client: $ redis-cli INCR foo +[stage-46] client: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-46] client: Received bytes: ":1\r\n" +[stage-46] client: Received RESP integer: 1 +[stage-46] Received 1 +[stage-46] client: > INCR foo +[stage-46] client: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-46] client: Received bytes: ":2\r\n" +[stage-46] client: Received RESP integer: 2 +[stage-46] Received 2 +[stage-46] Test passed. +[stage-46] Terminating program +[stage-46] Program terminated successfully + +[stage-45] Running tests for Stage #45: si4 +[stage-45] $ ./spawn_redis_server.sh +[stage-45] client: $ redis-cli SET foo 28 +[stage-45] client: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$2\r\n28\r\n" +[stage-45] client: Received bytes: "+OK\r\n" +[stage-45] client: Received RESP simple string: "OK" +[stage-45] Received "OK" +[stage-45] client: > INCR foo +[stage-45] client: Sent bytes: "*2\r\n$4\r\nINCR\r\n$3\r\nfoo\r\n" +[stage-45] client: Received bytes: ":29\r\n" +[stage-45] client: Received RESP integer: 29 +[stage-45] Received 29 +[stage-45] Test passed. +[stage-45] Terminating program +[stage-45] Program terminated successfully + +[stage-44] Running tests for Stage #44: xu1 +[stage-44] $ ./spawn_redis_server.sh +[stage-44] $ redis-cli xadd "orange" "0-1" "temperature 74" +[stage-44] Received response: ""0-1"" +[stage-44] $ redis-cli xread block '\x00' streams "orange 0-1" +[stage-44] $ redis-cli xadd "orange" "0-2" "temperature 74" +[stage-44] Received response: ""0-2"" +[stage-44] Received response: "[ +[stage-44]  { +[stage-44]  "Stream": "orange", +[stage-44]  "Messages": [ +[stage-44]  { +[stage-44]  "ID": "0-2", +[stage-44]  "Values": { +[stage-44]  "temperature": "74" +[stage-44]  } +[stage-44]  } +[stage-44]  ] +[stage-44]  } +[stage-44] ]" +[stage-44] Test passed. +[stage-44] Terminating program +[stage-44] Program terminated successfully + +[stage-43] Running tests for Stage #43: hw1 +[stage-43] $ ./spawn_redis_server.sh +[stage-43] $ redis-cli xadd "mango" "0-1" "temperature 20" +[stage-43] Received response: ""0-1"" +[stage-43] $ redis-cli xread block '\x00' streams "mango 0-1" +[stage-43] $ redis-cli xadd "mango" "0-2" "temperature 20" +[stage-43] Received response: ""0-2"" +[stage-43] Received response: "[ +[stage-43]  { +[stage-43]  "Stream": "mango", +[stage-43]  "Messages": [ +[stage-43]  { +[stage-43]  "ID": "0-2", +[stage-43]  "Values": { +[stage-43]  "temperature": "20" +[stage-43]  } +[stage-43]  } +[stage-43]  ] +[stage-43]  } +[stage-43] ]" +[stage-43] Test passed. +[stage-43] Terminating program +[stage-43] Program terminated successfully + +[stage-42] Running tests for Stage #42: bs1 +[stage-42] $ ./spawn_redis_server.sh +[stage-42] $ redis-cli xadd "banana" "0-1" "temperature 67" +[stage-42] Received response: ""0-1"" +[stage-42] $ redis-cli xread block 'Ϩ' streams "banana 0-1" +[stage-42] $ redis-cli xadd "banana" "0-2" "temperature 67" +[stage-42] Received response: ""0-2"" +[stage-42] Received response: "[ +[stage-42]  { +[stage-42]  "Stream": "banana", +[stage-42]  "Messages": [ +[stage-42]  { +[stage-42]  "ID": "0-2", +[stage-42]  "Values": { +[stage-42]  "temperature": "67" +[stage-42]  } +[stage-42]  } +[stage-42]  ] +[stage-42]  } +[stage-42] ]" +[stage-42] $ redis-cli xread block 'Ϩ' streams "banana 0-2" +[stage-42] Received nil response +[stage-42] Test passed. +[stage-42] Terminating program +[stage-42] Program terminated successfully + +[stage-41] Running tests for Stage #41: ru9 +[stage-41] $ ./spawn_redis_server.sh +[stage-41] $ redis-cli xadd "banana" "0-1" "temperature 61" +[stage-41] Received response: ""0-1"" +[stage-41] $ redis-cli xadd "pear" "0-2" "humidity 80" +[stage-41] Received response: ""0-2"" +[stage-41] $ redis-cli xread streams "banana pear 0-0 0-1" +[stage-41] Received response: "[ +[stage-41]  { +[stage-41]  "Stream": "banana", +[stage-41]  "Messages": [ +[stage-41]  { +[stage-41]  "ID": "0-1", +[stage-41]  "Values": { +[stage-41]  "temperature": "61" +[stage-41]  } +[stage-41]  } +[stage-41]  ] +[stage-41]  }, +[stage-41]  { +[stage-41]  "Stream": "pear", +[stage-41]  "Messages": [ +[stage-41]  { +[stage-41]  "ID": "0-2", +[stage-41]  "Values": { +[stage-41]  "humidity": "80" +[stage-41]  } +[stage-41]  } +[stage-41]  ] +[stage-41]  } +[stage-41] ]" +[stage-41] Test passed. +[stage-41] Terminating program +[stage-41] Program terminated successfully + +[stage-40] Running tests for Stage #40: um0 +[stage-40] $ ./spawn_redis_server.sh +[stage-40] $ redis-cli xadd "grape" "0-1" "temperature 71" +[stage-40] Received response: ""0-1"" +[stage-40] $ redis-cli xread streams "grape 0-0" +[stage-40] Received response: "[ +[stage-40]  { +[stage-40]  "Stream": "grape", +[stage-40]  "Messages": [ +[stage-40]  { +[stage-40]  "ID": "0-1", +[stage-40]  "Values": { +[stage-40]  "temperature": "71" +[stage-40]  } +[stage-40]  } +[stage-40]  ] +[stage-40]  } +[stage-40] ]" +[stage-40] Test passed. +[stage-40] Terminating program +[stage-40] Program terminated successfully + +[stage-39] Running tests for Stage #39: fs1 +[stage-39] $ ./spawn_redis_server.sh +[stage-39] $ redis-cli xadd "apple" "0-1" "foo bar" +[stage-39] Received response: ""0-1"" +[stage-39] $ redis-cli xadd "apple" "0-2" "foo bar" +[stage-39] Received response: ""0-2"" +[stage-39] $ redis-cli xadd "apple" "0-3" "foo bar" +[stage-39] Received response: ""0-3"" +[stage-39] $ redis-cli xrange "apple" 0-2 + +[stage-39] Received response: "[ +[stage-39]  { +[stage-39]  "ID": "0-2", +[stage-39]  "Values": { +[stage-39]  "foo": "bar" +[stage-39]  } +[stage-39]  }, +[stage-39]  { +[stage-39]  "ID": "0-3", +[stage-39]  "Values": { +[stage-39]  "foo": "bar" +[stage-39]  } +[stage-39]  } +[stage-39] ]" +[stage-39] Test passed. +[stage-39] Terminating program +[stage-39] Program terminated successfully + +[stage-38] Running tests for Stage #38: yp1 +[stage-38] $ ./spawn_redis_server.sh +[stage-38] $ redis-cli xadd "mango" "0-1" "foo bar" +[stage-38] Received response: ""0-1"" +[stage-38] $ redis-cli xadd "mango" "0-2" "foo bar" +[stage-38] Received response: ""0-2"" +[stage-38] $ redis-cli xadd "mango" "0-3" "foo bar" +[stage-38] Received response: ""0-3"" +[stage-38] $ redis-cli xrange "mango" - "0-2" +[stage-38] Received response: "[ +[stage-38]  { +[stage-38]  "ID": "0-1", +[stage-38]  "Values": { +[stage-38]  "foo": "bar" +[stage-38]  } +[stage-38]  }, +[stage-38]  { +[stage-38]  "ID": "0-2", +[stage-38]  "Values": { +[stage-38]  "foo": "bar" +[stage-38]  } +[stage-38]  } +[stage-38] ]" +[stage-38] Test passed. +[stage-38] Terminating program +[stage-38] Program terminated successfully + +[stage-37] Running tests for Stage #37: zx1 +[stage-37] $ ./spawn_redis_server.sh +[stage-37] $ redis-cli xadd "banana" "0-1" "foo bar" +[stage-37] Received response: ""0-1"" +[stage-37] $ redis-cli xadd "banana" "0-2" "foo bar" +[stage-37] Received response: ""0-2"" +[stage-37] $ redis-cli xadd "banana" "0-3" "foo bar" +[stage-37] Received response: ""0-3"" +[stage-37] $ redis-cli xrange "banana" 0-2 "0-3" +[stage-37] Received response: "[ +[stage-37]  { +[stage-37]  "ID": "0-2", +[stage-37]  "Values": { +[stage-37]  "foo": "bar" +[stage-37]  } +[stage-37]  }, +[stage-37]  { +[stage-37]  "ID": "0-3", +[stage-37]  "Values": { +[stage-37]  "foo": "bar" +[stage-37]  } +[stage-37]  } +[stage-37] ]" +[stage-37] Test passed. +[stage-37] Terminating program +[stage-37] Program terminated successfully + +[stage-36] Running tests for Stage #36: xu6 +[stage-36] $ ./spawn_redis_server.sh +[stage-36] $ redis-cli xadd "apple" * foo bar +[stage-36] Received response: ""1718270506456-0"" +[stage-36] The first part of the ID is a valid unix milliseconds timestamp +[stage-36] The second part of the ID is a valid sequence number +[stage-36] Test passed. +[stage-36] Terminating program +[stage-36] Program terminated successfully + +[stage-35] Running tests for Stage #35: yh3 +[stage-35] $ ./spawn_redis_server.sh +[stage-35] $ redis-cli xadd "pear" "0-*" "foo bar" +[stage-35] Received response: ""0-1"" +[stage-35] $ redis-cli xadd "pear" "1-*" "foo bar" +[stage-35] Received response: ""1-0"" +[stage-35] $ redis-cli xadd "pear" "1-*" "bar baz" +[stage-35] Received response: ""1-1"" +[stage-35] Test passed. +[stage-35] Terminating program +[stage-35] Program terminated successfully + +[stage-34] Running tests for Stage #34: hq8 +[stage-34] $ ./spawn_redis_server.sh +[stage-34] $ redis-cli xadd "banana" "1-1" "foo bar" +[stage-34] Received response: ""1-1"" +[stage-34] $ redis-cli xadd "banana" "1-2" "bar baz" +[stage-34] Received response: ""1-2"" +[stage-34] $ redis-cli xadd "banana" "1-2" "baz foo" +[stage-34] Received error: ""ERR The ID specified in XADD is equal or smaller than the target stream top item"" +[stage-34] $ redis-cli xadd "banana" "0-3" "baz foo" +[stage-34] Received error: ""ERR The ID specified in XADD is equal or smaller than the target stream top item"" +[stage-34] $ redis-cli xadd "banana" "0-0" "baz foo" +[stage-34] Received error: ""ERR The ID specified in XADD must be greater than 0-0"" +[stage-34] Test passed. +[stage-34] Terminating program +[stage-34] Program terminated successfully + +[stage-33] Running tests for Stage #33: cf6 +[stage-33] $ ./spawn_redis_server.sh +[stage-33] $ redis-cli xadd "pineapple" "0-1" "foo bar" +[stage-33] Received response: ""0-1"" +[stage-33] $ redis-cli type "pineapple" +[stage-33] Type of "pineapple" is "stream" +[stage-33] Test passed. +[stage-33] Terminating program +[stage-33] Program terminated successfully + +[stage-32] Running tests for Stage #32: cc3 +[stage-32] $ ./spawn_redis_server.sh +[stage-32] $ redis-cli set "raspberry" "apple" +[stage-32] Received response: ""OK"" +[stage-32] $ redis-cli type "raspberry" +[stage-32] Type of "raspberry" is "string" +[stage-32] $ redis-cli type "missing_key_apple" +[stage-32] Type of missing_key_"apple" is "none" +[stage-32] Test passed. +[stage-32] Terminating program +[stage-32] Program terminated successfully + +[stage-31] Running tests for Stage #31: na2 +[stage-31] $ ./spawn_redis_server.sh --port 6379 +[stage-31] Proceeding to create 3 replicas. +[stage-31] Creating replica: 1 +[stage-31] replica-1: $ redis-cli PING +[stage-31] replica-1: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-31] replica-1: Received bytes: "+PONG\r\n" +[stage-31] replica-1: Received RESP simple string: "PONG" +[stage-31] Received "PONG" +[stage-31] replica-1: > REPLCONF listening-port 6380 +[stage-31] replica-1: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-31] replica-1: Received bytes: "+OK\r\n" +[stage-31] replica-1: Received RESP simple string: "OK" +[stage-31] Received "OK" +[stage-31] replica-1: > REPLCONF capa psync2 +[stage-31] replica-1: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-31] replica-1: Received bytes: "+OK\r\n" +[stage-31] replica-1: Received RESP simple string: "OK" +[stage-31] Received "OK" +[stage-31] replica-1: > PSYNC ? -1 +[stage-31] replica-1: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-31] replica-1: Received bytes: "+FULLRESYNC 40eba0ba52e402b3e85dbd6dfb05fbd12570f5eb 0\r\n" +[stage-31] replica-1: Received RESP simple string: "FULLRESYNC 40eba0ba52e402b3e85dbd6dfb05fbd12570f5eb 0" +[stage-31] Received "FULLRESYNC 40eba0ba52e402b3e85dbd6dfb05fbd12570f5eb 0" +[stage-31] Reading RDB file... +[stage-31] replica-1: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc2+\xbajf\xfa\bused-mem\xc20\x0e\x12\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(40eba0ba52e402b3e85dbd6dfb05fbd12570f5eb\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xff`@\xaa\xbbåb0" +[stage-31] Received RDB file +[stage-31] Creating replica: 2 +[stage-31] replica-2: $ redis-cli PING +[stage-31] replica-2: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-31] replica-2: Received bytes: "+PONG\r\n" +[stage-31] replica-2: Received RESP simple string: "PONG" +[stage-31] Received "PONG" +[stage-31] replica-2: > REPLCONF listening-port 6381 +[stage-31] replica-2: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6381\r\n" +[stage-31] replica-2: Received bytes: "+OK\r\n" +[stage-31] replica-2: Received RESP simple string: "OK" +[stage-31] Received "OK" +[stage-31] replica-2: > REPLCONF capa psync2 +[stage-31] replica-2: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-31] replica-2: Received bytes: "+OK\r\n" +[stage-31] replica-2: Received RESP simple string: "OK" +[stage-31] Received "OK" +[stage-31] replica-2: > PSYNC ? -1 +[stage-31] replica-2: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-31] replica-2: Received bytes: "+FULLRESYNC 40eba0ba52e402b3e85dbd6dfb05fbd12570f5eb 0\r\n" +[stage-31] replica-2: Received RESP simple string: "FULLRESYNC 40eba0ba52e402b3e85dbd6dfb05fbd12570f5eb 0" +[stage-31] Received "FULLRESYNC 40eba0ba52e402b3e85dbd6dfb05fbd12570f5eb 0" +[stage-31] Reading RDB file... +[stage-31] replica-2: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc2+\xbajf\xfa\bused-mem\xc2\xc0\xf5\x12\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(40eba0ba52e402b3e85dbd6dfb05fbd12570f5eb\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xff\xc9U=\xbc;\b\xac\x85" +[stage-31] Received RDB file +[stage-31] Creating replica: 3 +[stage-31] replica-3: $ redis-cli PING +[stage-31] replica-3: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-31] replica-3: Received bytes: "+PONG\r\n" +[stage-31] replica-3: Received RESP simple string: "PONG" +[stage-31] Received "PONG" +[stage-31] replica-3: > REPLCONF listening-port 6382 +[stage-31] replica-3: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6382\r\n" +[stage-31] replica-3: Received bytes: "+OK\r\n" +[stage-31] replica-3: Received RESP simple string: "OK" +[stage-31] Received "OK" +[stage-31] replica-3: > REPLCONF capa psync2 +[stage-31] replica-3: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-31] replica-3: Received bytes: "+OK\r\n" +[stage-31] replica-3: Received RESP simple string: "OK" +[stage-31] Received "OK" +[stage-31] replica-3: > PSYNC ? -1 +[stage-31] replica-3: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-31] replica-3: Received bytes: "+FULLRESYNC 40eba0ba52e402b3e85dbd6dfb05fbd12570f5eb 0\r\n" +[stage-31] replica-3: Received RESP simple string: "FULLRESYNC 40eba0ba52e402b3e85dbd6dfb05fbd12570f5eb 0" +[stage-31] Received "FULLRESYNC 40eba0ba52e402b3e85dbd6dfb05fbd12570f5eb 0" +[stage-31] Reading RDB file... +[stage-31] replica-3: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc2+\xbajf\xfa\bused-mem\xc2\xc0@\x13\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(40eba0ba52e402b3e85dbd6dfb05fbd12570f5eb\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xff\xf1r\xa5\xf4\xd2\xc7;\xab" +[stage-31] Received RDB file +[stage-31] client: $ redis-cli SET foo 123 +[stage-31] client: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\n123\r\n" +[stage-31] client: Received bytes: "+OK\r\n" +[stage-31] client: Received RESP simple string: "OK" +[stage-31] Received "OK" +[stage-31] client: > WAIT 1 500 +[stage-31] client: Sent bytes: "*3\r\n$4\r\nWAIT\r\n$1\r\n1\r\n$3\r\n500\r\n" +[stage-31] Testing Replica : 1 +[stage-31] replica-1: Expecting "SET foo 123" to be propagated +[stage-31] replica-1: Received bytes: "*2\r\n$6\r\nSELECT\r\n$1\r\n0\r\n" +[stage-31] replica-1: Received RESP array: ["SELECT", "0"] +[stage-31] replica-1: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\n123\r\n" +[stage-31] replica-1: Received RESP array: ["SET", "foo", "123"] +[stage-31] Received ["SET", "foo", "123"] +[stage-31] replica-1: Expecting "REPLCONF GETACK *" from Master +[stage-31] replica-1: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$6\r\nGETACK\r\n$1\r\n*\r\n" +[stage-31] replica-1: Received RESP array: ["REPLCONF", "GETACK", "*"] +[stage-31] Received ["REPLCONF", "GETACK", "*"] +[stage-31] replica-1: Sending ACK to Master +[stage-31] replica-1: $ redis-cli REPLCONF ACK 54 +[stage-31] replica-1: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$3\r\nACK\r\n$2\r\n54\r\n" +[stage-31] Testing Replica : 2 +[stage-31] replica-2: Expecting "SET foo 123" to be propagated +[stage-31] replica-2: Received bytes: "*2\r\n$6\r\nSELECT\r\n$1\r\n0\r\n" +[stage-31] replica-2: Received RESP array: ["SELECT", "0"] +[stage-31] replica-2: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\n123\r\n" +[stage-31] replica-2: Received RESP array: ["SET", "foo", "123"] +[stage-31] Received ["SET", "foo", "123"] +[stage-31] replica-2: Expecting "REPLCONF GETACK *" from Master +[stage-31] replica-2: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$6\r\nGETACK\r\n$1\r\n*\r\n" +[stage-31] replica-2: Received RESP array: ["REPLCONF", "GETACK", "*"] +[stage-31] Received ["REPLCONF", "GETACK", "*"] +[stage-31] replica-2: Not sending ACK to Master +[stage-31] Testing Replica : 3 +[stage-31] replica-3: Expecting "SET foo 123" to be propagated +[stage-31] replica-3: Received bytes: "*2\r\n$6\r\nSELECT\r\n$1\r\n0\r\n" +[stage-31] replica-3: Received RESP array: ["SELECT", "0"] +[stage-31] replica-3: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\n123\r\n" +[stage-31] replica-3: Received RESP array: ["SET", "foo", "123"] +[stage-31] Received ["SET", "foo", "123"] +[stage-31] replica-3: Expecting "REPLCONF GETACK *" from Master +[stage-31] replica-3: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$6\r\nGETACK\r\n$1\r\n*\r\n" +[stage-31] replica-3: Received RESP array: ["REPLCONF", "GETACK", "*"] +[stage-31] Received ["REPLCONF", "GETACK", "*"] +[stage-31] replica-3: Not sending ACK to Master +[stage-31] client: Received bytes: ":1\r\n" +[stage-31] client: Received RESP integer: 1 +[stage-31] Passed first WAIT test. +[stage-31] client: > SET baz 789 +[stage-31] client: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbaz\r\n$3\r\n789\r\n" +[stage-31] client: Received bytes: "+OK\r\n" +[stage-31] client: Received RESP simple string: "OK" +[stage-31] Received "OK" +[stage-31] client: > WAIT 3 2000 +[stage-31] client: Sent bytes: "*3\r\n$4\r\nWAIT\r\n$1\r\n3\r\n$4\r\n2000\r\n" +[stage-31] Testing Replica : 1 +[stage-31] replica-1: Expecting "SET baz 789" to be propagated +[stage-31] replica-1: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbaz\r\n$3\r\n789\r\n" +[stage-31] replica-1: Received RESP array: ["SET", "baz", "789"] +[stage-31] Received ["SET", "baz", "789"] +[stage-31] replica-1: Expecting "REPLCONF GETACK *" from Master +[stage-31] replica-1: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$6\r\nGETACK\r\n$1\r\n*\r\n" +[stage-31] replica-1: Received RESP array: ["REPLCONF", "GETACK", "*"] +[stage-31] Received ["REPLCONF", "GETACK", "*"] +[stage-31] replica-1: Sending ACK to Master +[stage-31] replica-1: > REPLCONF ACK 122 +[stage-31] replica-1: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$3\r\nACK\r\n$3\r\n122\r\n" +[stage-31] Testing Replica : 2 +[stage-31] replica-2: Expecting "SET baz 789" to be propagated +[stage-31] replica-2: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbaz\r\n$3\r\n789\r\n" +[stage-31] replica-2: Received RESP array: ["SET", "baz", "789"] +[stage-31] Received ["SET", "baz", "789"] +[stage-31] replica-2: Expecting "REPLCONF GETACK *" from Master +[stage-31] replica-2: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$6\r\nGETACK\r\n$1\r\n*\r\n" +[stage-31] replica-2: Received RESP array: ["REPLCONF", "GETACK", "*"] +[stage-31] Received ["REPLCONF", "GETACK", "*"] +[stage-31] replica-2: Sending ACK to Master +[stage-31] replica-2: $ redis-cli REPLCONF ACK 122 +[stage-31] replica-2: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$3\r\nACK\r\n$3\r\n122\r\n" +[stage-31] Testing Replica : 3 +[stage-31] replica-3: Expecting "SET baz 789" to be propagated +[stage-31] replica-3: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbaz\r\n$3\r\n789\r\n" +[stage-31] replica-3: Received RESP array: ["SET", "baz", "789"] +[stage-31] Received ["SET", "baz", "789"] +[stage-31] replica-3: Expecting "REPLCONF GETACK *" from Master +[stage-31] replica-3: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$6\r\nGETACK\r\n$1\r\n*\r\n" +[stage-31] replica-3: Received RESP array: ["REPLCONF", "GETACK", "*"] +[stage-31] Received ["REPLCONF", "GETACK", "*"] +[stage-31] replica-3: Not sending ACK to Master +[stage-31] client: Received bytes: ":2\r\n" +[stage-31] client: Received RESP integer: 2 +[stage-31] WAIT command returned after 2100 ms +[stage-31] Test passed. +[stage-31] Terminating program +[stage-31] Program terminated successfully + +[stage-30] Running tests for Stage #30: tu8 +[stage-30] $ ./spawn_redis_server.sh --port 6379 +[stage-30] Proceeding to create 5 replicas. +[stage-30] Creating replica: 1 +[stage-30] replica-1: $ redis-cli PING +[stage-30] replica-1: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-30] replica-1: Received bytes: "+PONG\r\n" +[stage-30] replica-1: Received RESP simple string: "PONG" +[stage-30] Received "PONG" +[stage-30] replica-1: > REPLCONF listening-port 6380 +[stage-30] replica-1: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-30] replica-1: Received bytes: "+OK\r\n" +[stage-30] replica-1: Received RESP simple string: "OK" +[stage-30] Received "OK" +[stage-30] replica-1: > REPLCONF capa psync2 +[stage-30] replica-1: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-30] replica-1: Received bytes: "+OK\r\n" +[stage-30] replica-1: Received RESP simple string: "OK" +[stage-30] Received "OK" +[stage-30] replica-1: > PSYNC ? -1 +[stage-30] replica-1: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-30] replica-1: Received bytes: "+FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0\r\n" +[stage-30] replica-1: Received RESP simple string: "FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0" +[stage-30] Received "FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0" +[stage-30] Reading RDB file... +[stage-30] replica-1: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc2-\xbajf\xfa\bused-mem\xc2P\x0e\x12\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(b5489c0fe54b16dc6e97eda75f88121c68a99be9\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xff$nt\xb5\xba7p " +[stage-30] Received RDB file +[stage-30] Creating replica: 2 +[stage-30] replica-2: $ redis-cli PING +[stage-30] replica-2: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-30] replica-2: Received bytes: "+PONG\r\n" +[stage-30] replica-2: Received RESP simple string: "PONG" +[stage-30] Received "PONG" +[stage-30] replica-2: > REPLCONF listening-port 6381 +[stage-30] replica-2: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6381\r\n" +[stage-30] replica-2: Received bytes: "+OK\r\n" +[stage-30] replica-2: Received RESP simple string: "OK" +[stage-30] Received "OK" +[stage-30] replica-2: > REPLCONF capa psync2 +[stage-30] replica-2: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-30] replica-2: Received bytes: "+OK\r\n" +[stage-30] replica-2: Received RESP simple string: "OK" +[stage-30] Received "OK" +[stage-30] replica-2: > PSYNC ? -1 +[stage-30] replica-2: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-30] replica-2: Received bytes: "+FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0\r\n" +[stage-30] replica-2: Received RESP simple string: "FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0" +[stage-30] Received "FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0" +[stage-30] Reading RDB file... +[stage-30] replica-2: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc2-\xbajf\xfa\bused-mem\xc2\xe0\xb9\x12\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(b5489c0fe54b16dc6e97eda75f88121c68a99be9\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xff\xe8\x111\x06\xab\xaf\xfb\b" +[stage-30] Received RDB file +[stage-30] Creating replica: 3 +[stage-30] replica-3: $ redis-cli PING +[stage-30] replica-3: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-30] replica-3: Received bytes: "+PONG\r\n" +[stage-30] replica-3: Received RESP simple string: "PONG" +[stage-30] Received "PONG" +[stage-30] replica-3: > REPLCONF listening-port 6382 +[stage-30] replica-3: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6382\r\n" +[stage-30] replica-3: Received bytes: "+OK\r\n" +[stage-30] replica-3: Received RESP simple string: "OK" +[stage-30] Received "OK" +[stage-30] replica-3: > REPLCONF capa psync2 +[stage-30] replica-3: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-30] replica-3: Received bytes: "+OK\r\n" +[stage-30] replica-3: Received RESP simple string: "OK" +[stage-30] Received "OK" +[stage-30] replica-3: > PSYNC ? -1 +[stage-30] replica-3: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-30] replica-3: Received bytes: "+FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0\r\n" +[stage-30] replica-3: Received RESP simple string: "FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0" +[stage-30] Received "FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0" +[stage-30] Reading RDB file... +[stage-30] replica-3: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc2-\xbajf\xfa\bused-mem\xc2\xe0@\x13\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(b5489c0fe54b16dc6e97eda75f88121c68a99be9\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xffW\xbaK\xad5\x9c\x93W" +[stage-30] Received RDB file +[stage-30] Creating replica: 4 +[stage-30] replica-4: $ redis-cli PING +[stage-30] replica-4: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-30] replica-4: Received bytes: "+PONG\r\n" +[stage-30] replica-4: Received RESP simple string: "PONG" +[stage-30] Received "PONG" +[stage-30] replica-4: > REPLCONF listening-port 6383 +[stage-30] replica-4: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6383\r\n" +[stage-30] replica-4: Received bytes: "+OK\r\n" +[stage-30] replica-4: Received RESP simple string: "OK" +[stage-30] Received "OK" +[stage-30] replica-4: > REPLCONF capa psync2 +[stage-30] replica-4: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-30] replica-4: Received bytes: "+OK\r\n" +[stage-30] replica-4: Received RESP simple string: "OK" +[stage-30] Received "OK" +[stage-30] replica-4: > PSYNC ? -1 +[stage-30] replica-4: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-30] replica-4: Received bytes: "+FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0\r\n" +[stage-30] replica-4: Received RESP simple string: "FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0" +[stage-30] Received "FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0" +[stage-30] Reading RDB file... +[stage-30] replica-4: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc2-\xbajf\xfa\bused-mem\xc2\xf0\x8b\x13\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(b5489c0fe54b16dc6e97eda75f88121c68a99be9\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xff\x93\x8f\xca\xda#\xe6\x86\xff" +[stage-30] Received RDB file +[stage-30] Creating replica: 5 +[stage-30] replica-5: $ redis-cli PING +[stage-30] replica-5: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-30] replica-5: Received bytes: "+PONG\r\n" +[stage-30] replica-5: Received RESP simple string: "PONG" +[stage-30] Received "PONG" +[stage-30] replica-5: > REPLCONF listening-port 6384 +[stage-30] replica-5: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6384\r\n" +[stage-30] replica-5: Received bytes: "+OK\r\n" +[stage-30] replica-5: Received RESP simple string: "OK" +[stage-30] Received "OK" +[stage-30] replica-5: > REPLCONF capa psync2 +[stage-30] replica-5: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-30] replica-5: Received bytes: "+OK\r\n" +[stage-30] replica-5: Received RESP simple string: "OK" +[stage-30] Received "OK" +[stage-30] replica-5: > PSYNC ? -1 +[stage-30] replica-5: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-30] replica-5: Received bytes: "+FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0\r\n" +[stage-30] replica-5: Received RESP simple string: "FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0" +[stage-30] Received "FULLRESYNC b5489c0fe54b16dc6e97eda75f88121c68a99be9 0" +[stage-30] Reading RDB file... +[stage-30] replica-5: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc2.\xbajf\xfa\bused-mem\xc2\x00\xd7\x13\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(b5489c0fe54b16dc6e97eda75f88121c68a99be9\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xff\x9e\x13H\xd75\x92b-" +[stage-30] Received RDB file +[stage-30] client: $ redis-cli WAIT 3 500 +[stage-30] client: Sent bytes: "*3\r\n$4\r\nWAIT\r\n$1\r\n3\r\n$3\r\n500\r\n" +[stage-30] client: Received bytes: ":5\r\n" +[stage-30] client: Received RESP integer: 5 +[stage-30] Received 5 +[stage-30] client: > WAIT 4 500 +[stage-30] client: Sent bytes: "*3\r\n$4\r\nWAIT\r\n$1\r\n4\r\n$3\r\n500\r\n" +[stage-30] client: Received bytes: ":5\r\n" +[stage-30] client: Received RESP integer: 5 +[stage-30] Received 5 +[stage-30] client: > WAIT 5 500 +[stage-30] client: Sent bytes: "*3\r\n$4\r\nWAIT\r\n$1\r\n5\r\n$3\r\n500\r\n" +[stage-30] client: Received bytes: ":5\r\n" +[stage-30] client: Received RESP integer: 5 +[stage-30] Received 5 +[stage-30] client: > WAIT 6 500 +[stage-30] client: Sent bytes: "*3\r\n$4\r\nWAIT\r\n$1\r\n6\r\n$3\r\n500\r\n" +[stage-30] client: Received bytes: ":5\r\n" +[stage-30] client: Received RESP integer: 5 +[stage-30] Received 5 +[stage-30] client: > WAIT 7 500 +[stage-30] client: Sent bytes: "*3\r\n$4\r\nWAIT\r\n$1\r\n7\r\n$3\r\n500\r\n" +[stage-30] client: Received bytes: ":5\r\n" +[stage-30] client: Received RESP integer: 5 +[stage-30] Received 5 +[stage-30] Test passed. +[stage-30] Terminating program +[stage-30] Program terminated successfully + +[stage-29] Running tests for Stage #29: my8 +[stage-29] $ ./spawn_redis_server.sh --port 6379 +[stage-29] client: $ redis-cli WAIT 0 60000 +[stage-29] client: Sent bytes: "*3\r\n$4\r\nWAIT\r\n$1\r\n0\r\n$5\r\n60000\r\n" +[stage-29] client: Received bytes: ":0\r\n" +[stage-29] client: Received RESP integer: 0 +[stage-29] Received 0 +[stage-29] Test passed. +[stage-29] Terminating program +[stage-29] Program terminated successfully + +[stage-28] Running tests for Stage #28: yd3 +[stage-28] Master is running on port 6379 +[stage-28] $ ./spawn_redis_server.sh --port 6380 --replicaof "localhost 6379" +[stage-28] master: Waiting for replica to initiate handshake with "PING" command +[stage-28] master: Received bytes: "*1\r\n$4\r\nPING\r\n" +[stage-28] master: Received RESP array: ["PING"] +[stage-28] Received ["PING"] +[stage-28] master: Sent "PONG" +[stage-28] master: Sent bytes: "+PONG\r\n" +[stage-28] master: Waiting for replica to send "REPLCONF listening-port 6380" command +[stage-28] master: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-28] master: Received RESP array: ["REPLCONF", "listening-port", "6380"] +[stage-28] Received ["REPLCONF", "listening-port", "6380"] +[stage-28] master: Sent "OK" +[stage-28] master: Sent bytes: "+OK\r\n" +[stage-28] master: Waiting for replica to send "REPLCONF capa" command +[stage-28] master: Received bytes: "*5\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$3\r\neof\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-28] master: Received RESP array: ["REPLCONF", "capa", "eof", "capa", "psync2"] +[stage-28] Received ["REPLCONF", "capa", "eof", "capa", "psync2"] +[stage-28] master: Sent "OK" +[stage-28] master: Sent bytes: "+OK\r\n" +[stage-28] master: Waiting for replica to send "PSYNC" command +[stage-28] master: Received bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-28] master: Received RESP array: ["PSYNC", "?", "-1"] +[stage-28] Received ["PSYNC", "?", "-1"] +[stage-28] master: Sent "FULLRESYNC 75cd7bc10c49047e0d163660f3b90625b1af31dc 0" +[stage-28] master: Sent bytes: "+FULLRESYNC 75cd7bc10c49047e0d163660f3b90625b1af31dc 0\r\n" +[stage-28] Sending RDB file... +[stage-28] master: Sent bytes: "$88\r\nREDIS0011\xfa\tredis-ver\x057.2.0\xfa\nredis-bits\xc0@\xfa\x05ctime\xc2m\b\xbce\xfa\bused-mem°\xc4\x10\x00\xfa\baof-base\xc0\x00\xff\xf0n;\xfe\xc0\xffZ\xa2" +[stage-28] Sent RDB file. +[stage-28] master: $ redis-cli REPLCONF GETACK * +[stage-28] master: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$6\r\nGETACK\r\n$1\r\n*\r\n" +[stage-28] master: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$3\r\nACK\r\n$1\r\n0\r\n" +[stage-28] master: Received RESP array: ["REPLCONF", "ACK", "0"] +[stage-28] Received ["REPLCONF", "ACK", "0"] +[stage-28] master: > PING +[stage-28] master: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-28] master: > REPLCONF GETACK * +[stage-28] master: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$6\r\nGETACK\r\n$1\r\n*\r\n" +[stage-28] master: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$3\r\nACK\r\n$2\r\n51\r\n" +[stage-28] master: Received RESP array: ["REPLCONF", "ACK", "51"] +[stage-28] Received ["REPLCONF", "ACK", "51"] +[stage-28] master: > SET pear apple +[stage-28] master: Sent bytes: "*3\r\n$3\r\nSET\r\n$4\r\npear\r\n$5\r\napple\r\n" +[stage-28] master: > SET blueberry mango +[stage-28] master: Sent bytes: "*3\r\n$3\r\nSET\r\n$9\r\nblueberry\r\n$5\r\nmango\r\n" +[stage-28] master: > REPLCONF GETACK * +[stage-28] master: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$6\r\nGETACK\r\n$1\r\n*\r\n" +[stage-28] master: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$3\r\nACK\r\n$3\r\n161\r\n" +[stage-28] master: Received RESP array: ["REPLCONF", "ACK", "161"] +[stage-28] Received ["REPLCONF", "ACK", "161"] +[stage-28] Test passed. +[stage-28] Terminating program +[stage-28] Program terminated successfully + +[stage-27] Running tests for Stage #27: xv6 +[stage-27] Master is running on port 6379 +[stage-27] $ ./spawn_redis_server.sh --port 6380 --replicaof "localhost 6379" +[stage-27] master: Waiting for replica to initiate handshake with "PING" command +[stage-27] master: Received bytes: "*1\r\n$4\r\nPING\r\n" +[stage-27] master: Received RESP array: ["PING"] +[stage-27] Received ["PING"] +[stage-27] master: Sent "PONG" +[stage-27] master: Sent bytes: "+PONG\r\n" +[stage-27] master: Waiting for replica to send "REPLCONF listening-port 6380" command +[stage-27] master: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-27] master: Received RESP array: ["REPLCONF", "listening-port", "6380"] +[stage-27] Received ["REPLCONF", "listening-port", "6380"] +[stage-27] master: Sent "OK" +[stage-27] master: Sent bytes: "+OK\r\n" +[stage-27] master: Waiting for replica to send "REPLCONF capa" command +[stage-27] master: Received bytes: "*5\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$3\r\neof\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-27] master: Received RESP array: ["REPLCONF", "capa", "eof", "capa", "psync2"] +[stage-27] Received ["REPLCONF", "capa", "eof", "capa", "psync2"] +[stage-27] master: Sent "OK" +[stage-27] master: Sent bytes: "+OK\r\n" +[stage-27] master: Waiting for replica to send "PSYNC" command +[stage-27] master: Received bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-27] master: Received RESP array: ["PSYNC", "?", "-1"] +[stage-27] Received ["PSYNC", "?", "-1"] +[stage-27] master: Sent "FULLRESYNC 75cd7bc10c49047e0d163660f3b90625b1af31dc 0" +[stage-27] master: Sent bytes: "+FULLRESYNC 75cd7bc10c49047e0d163660f3b90625b1af31dc 0\r\n" +[stage-27] Sending RDB file... +[stage-27] master: Sent bytes: "$88\r\nREDIS0011\xfa\tredis-ver\x057.2.0\xfa\nredis-bits\xc0@\xfa\x05ctime\xc2m\b\xbce\xfa\bused-mem°\xc4\x10\x00\xfa\baof-base\xc0\x00\xff\xf0n;\xfe\xc0\xffZ\xa2" +[stage-27] Sent RDB file. +[stage-27] master: > REPLCONF GETACK * +[stage-27] master: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$6\r\nGETACK\r\n$1\r\n*\r\n" +[stage-27] master: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$3\r\nACK\r\n$1\r\n0\r\n" +[stage-27] master: Received RESP array: ["REPLCONF", "ACK", "0"] +[stage-27] Received ["REPLCONF", "ACK", "0"] +[stage-27] Test passed. +[stage-27] Terminating program +[stage-27] Program terminated successfully + +[stage-26] Running tests for Stage #26: yg4 +[stage-26] Master is running on port 6379 +[stage-26] $ ./spawn_redis_server.sh --port 6380 --replicaof "localhost 6379" +[stage-26] master: Waiting for replica to initiate handshake with "PING" command +[stage-26] master: Received bytes: "*1\r\n$4\r\nPING\r\n" +[stage-26] master: Received RESP array: ["PING"] +[stage-26] Received ["PING"] +[stage-26] master: Sent "PONG" +[stage-26] master: Sent bytes: "+PONG\r\n" +[stage-26] master: Waiting for replica to send "REPLCONF listening-port 6380" command +[stage-26] master: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-26] master: Received RESP array: ["REPLCONF", "listening-port", "6380"] +[stage-26] Received ["REPLCONF", "listening-port", "6380"] +[stage-26] master: Sent "OK" +[stage-26] master: Sent bytes: "+OK\r\n" +[stage-26] master: Waiting for replica to send "REPLCONF capa" command +[stage-26] master: Received bytes: "*5\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$3\r\neof\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-26] master: Received RESP array: ["REPLCONF", "capa", "eof", "capa", "psync2"] +[stage-26] Received ["REPLCONF", "capa", "eof", "capa", "psync2"] +[stage-26] master: Sent "OK" +[stage-26] master: Sent bytes: "+OK\r\n" +[stage-26] master: Waiting for replica to send "PSYNC" command +[stage-26] master: Received bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-26] master: Received RESP array: ["PSYNC", "?", "-1"] +[stage-26] Received ["PSYNC", "?", "-1"] +[stage-26] master: Sent "FULLRESYNC 75cd7bc10c49047e0d163660f3b90625b1af31dc 0" +[stage-26] master: Sent bytes: "+FULLRESYNC 75cd7bc10c49047e0d163660f3b90625b1af31dc 0\r\n" +[stage-26] Sending RDB file... +[stage-26] master: Sent bytes: "$88\r\nREDIS0011\xfa\tredis-ver\x057.2.0\xfa\nredis-bits\xc0@\xfa\x05ctime\xc2m\b\xbce\xfa\bused-mem°\xc4\x10\x00\xfa\baof-base\xc0\x00\xff\xf0n;\xfe\xc0\xffZ\xa2" +[stage-26] Sent RDB file. +[stage-26] master: > SET foo 123 +[stage-26] master: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\n123\r\n" +[stage-26] master: > SET bar 456 +[stage-26] master: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbar\r\n$3\r\n456\r\n" +[stage-26] master: > SET baz 789 +[stage-26] master: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbaz\r\n$3\r\n789\r\n" +[stage-26] Getting key foo +[stage-26] client: $ redis-cli GET foo +[stage-26] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$3\r\nfoo\r\n" +[stage-26] client: Received bytes: "$3\r\n123\r\n" +[stage-26] client: Received RESP bulk string: "123" +[stage-26] Received "123" +[stage-26] Getting key bar +[stage-26] client: > GET bar +[stage-26] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$3\r\nbar\r\n" +[stage-26] client: Received bytes: "$3\r\n456\r\n" +[stage-26] client: Received RESP bulk string: "456" +[stage-26] Received "456" +[stage-26] Getting key baz +[stage-26] client: > GET baz +[stage-26] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$3\r\nbaz\r\n" +[stage-26] client: Received bytes: "$3\r\n789\r\n" +[stage-26] client: Received RESP bulk string: "789" +[stage-26] Received "789" +[stage-26] Test passed. +[stage-26] Terminating program +[stage-26] Program terminated successfully + +[stage-25] Running tests for Stage #25: hd5 +[stage-25] $ ./spawn_redis_server.sh --port 6379 +[stage-25] Creating replica: 1 +[stage-25] replica-1: $ redis-cli PING +[stage-25] replica-1: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-25] replica-1: Received bytes: "+PONG\r\n" +[stage-25] replica-1: Received RESP simple string: "PONG" +[stage-25] Received "PONG" +[stage-25] replica-1: > REPLCONF listening-port 6380 +[stage-25] replica-1: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-25] replica-1: Received bytes: "+OK\r\n" +[stage-25] replica-1: Received RESP simple string: "OK" +[stage-25] Received "OK" +[stage-25] replica-1: > REPLCONF capa psync2 +[stage-25] replica-1: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-25] replica-1: Received bytes: "+OK\r\n" +[stage-25] replica-1: Received RESP simple string: "OK" +[stage-25] Received "OK" +[stage-25] replica-1: > PSYNC ? -1 +[stage-25] replica-1: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-25] replica-1: Received bytes: "+FULLRESYNC 3c22c542366e3dfe1db675ca9eb172590e466137 0\r\n" +[stage-25] replica-1: Received RESP simple string: "FULLRESYNC 3c22c542366e3dfe1db675ca9eb172590e466137 0" +[stage-25] Received "FULLRESYNC 3c22c542366e3dfe1db675ca9eb172590e466137 0" +[stage-25] Reading RDB file... +[stage-25] replica-1: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc20\xbajf\xfa\bused-mem\xc2\x00S\x12\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(3c22c542366e3dfe1db675ca9eb172590e466137\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xff\x94L\x19p\x00\xc0\xf9\x10" +[stage-25] Received RDB file +[stage-25] Creating replica: 2 +[stage-25] replica-2: $ redis-cli PING +[stage-25] replica-2: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-25] replica-2: Received bytes: "+PONG\r\n" +[stage-25] replica-2: Received RESP simple string: "PONG" +[stage-25] Received "PONG" +[stage-25] replica-2: > REPLCONF listening-port 6381 +[stage-25] replica-2: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6381\r\n" +[stage-25] replica-2: Received bytes: "+OK\r\n" +[stage-25] replica-2: Received RESP simple string: "OK" +[stage-25] Received "OK" +[stage-25] replica-2: > REPLCONF capa psync2 +[stage-25] replica-2: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-25] replica-2: Received bytes: "+OK\r\n" +[stage-25] replica-2: Received RESP simple string: "OK" +[stage-25] Received "OK" +[stage-25] replica-2: > PSYNC ? -1 +[stage-25] replica-2: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-25] replica-2: Received bytes: "+FULLRESYNC 3c22c542366e3dfe1db675ca9eb172590e466137 0\r\n" +[stage-25] replica-2: Received RESP simple string: "FULLRESYNC 3c22c542366e3dfe1db675ca9eb172590e466137 0" +[stage-25] Received "FULLRESYNC 3c22c542366e3dfe1db675ca9eb172590e466137 0" +[stage-25] Reading RDB file... +[stage-25] replica-2: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc20\xbajf\xfa\bused-mem\xc2p:\x13\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(3c22c542366e3dfe1db675ca9eb172590e466137\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xffi\x81!!\xe06\xdf\x1b" +[stage-25] Received RDB file +[stage-25] Creating replica: 3 +[stage-25] replica-3: $ redis-cli PING +[stage-25] replica-3: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-25] replica-3: Received bytes: "+PONG\r\n" +[stage-25] replica-3: Received RESP simple string: "PONG" +[stage-25] Received "PONG" +[stage-25] replica-3: > REPLCONF listening-port 6382 +[stage-25] replica-3: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6382\r\n" +[stage-25] replica-3: Received bytes: "+OK\r\n" +[stage-25] replica-3: Received RESP simple string: "OK" +[stage-25] Received "OK" +[stage-25] replica-3: > REPLCONF capa psync2 +[stage-25] replica-3: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-25] replica-3: Received bytes: "+OK\r\n" +[stage-25] replica-3: Received RESP simple string: "OK" +[stage-25] Received "OK" +[stage-25] replica-3: > PSYNC ? -1 +[stage-25] replica-3: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-25] replica-3: Received bytes: "+FULLRESYNC 3c22c542366e3dfe1db675ca9eb172590e466137 0\r\n" +[stage-25] replica-3: Received RESP simple string: "FULLRESYNC 3c22c542366e3dfe1db675ca9eb172590e466137 0" +[stage-25] Received "FULLRESYNC 3c22c542366e3dfe1db675ca9eb172590e466137 0" +[stage-25] Reading RDB file... +[stage-25] replica-3: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc20\xbajf\xfa\bused-mem\u0080I\x13\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(3c22c542366e3dfe1db675ca9eb172590e466137\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xff\x01+\xb4H\xb8&\x1ea" +[stage-25] Received RDB file +[stage-25] client: $ redis-cli SET foo 123 +[stage-25] client: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\n123\r\n" +[stage-25] client: Received bytes: "+OK\r\n" +[stage-25] client: Received RESP simple string: "OK" +[stage-25] Received "OK" +[stage-25] client: > SET bar 456 +[stage-25] client: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbar\r\n$3\r\n456\r\n" +[stage-25] client: Received bytes: "+OK\r\n" +[stage-25] client: Received RESP simple string: "OK" +[stage-25] Received "OK" +[stage-25] client: > SET baz 789 +[stage-25] client: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbaz\r\n$3\r\n789\r\n" +[stage-25] client: Received bytes: "+OK\r\n" +[stage-25] client: Received RESP simple string: "OK" +[stage-25] Received "OK" +[stage-25] Testing Replica: 1/3 +[stage-25] replica-1: Expecting "SET foo 123" to be propagated +[stage-25] replica-1: Received bytes: "*2\r\n$6\r\nSELECT\r\n$1\r\n0\r\n" +[stage-25] replica-1: Received RESP array: ["SELECT", "0"] +[stage-25] replica-1: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\n123\r\n" +[stage-25] replica-1: Received RESP array: ["SET", "foo", "123"] +[stage-25] Received ["SET", "foo", "123"] +[stage-25] replica-1: Expecting "SET bar 456" to be propagated +[stage-25] replica-1: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbar\r\n$3\r\n456\r\n" +[stage-25] replica-1: Received RESP array: ["SET", "bar", "456"] +[stage-25] Received ["SET", "bar", "456"] +[stage-25] replica-1: Expecting "SET baz 789" to be propagated +[stage-25] replica-1: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbaz\r\n$3\r\n789\r\n" +[stage-25] replica-1: Received RESP array: ["SET", "baz", "789"] +[stage-25] Received ["SET", "baz", "789"] +[stage-25] Testing Replica: 2/3 +[stage-25] replica-2: Expecting "SET foo 123" to be propagated +[stage-25] replica-2: Received bytes: "*2\r\n$6\r\nSELECT\r\n$1\r\n0\r\n" +[stage-25] replica-2: Received RESP array: ["SELECT", "0"] +[stage-25] replica-2: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\n123\r\n" +[stage-25] replica-2: Received RESP array: ["SET", "foo", "123"] +[stage-25] Received ["SET", "foo", "123"] +[stage-25] replica-2: Expecting "SET bar 456" to be propagated +[stage-25] replica-2: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbar\r\n$3\r\n456\r\n" +[stage-25] replica-2: Received RESP array: ["SET", "bar", "456"] +[stage-25] Received ["SET", "bar", "456"] +[stage-25] replica-2: Expecting "SET baz 789" to be propagated +[stage-25] replica-2: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbaz\r\n$3\r\n789\r\n" +[stage-25] replica-2: Received RESP array: ["SET", "baz", "789"] +[stage-25] Received ["SET", "baz", "789"] +[stage-25] Testing Replica: 3/3 +[stage-25] replica-3: Expecting "SET foo 123" to be propagated +[stage-25] replica-3: Received bytes: "*2\r\n$6\r\nSELECT\r\n$1\r\n0\r\n" +[stage-25] replica-3: Received RESP array: ["SELECT", "0"] +[stage-25] replica-3: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\n123\r\n" +[stage-25] replica-3: Received RESP array: ["SET", "foo", "123"] +[stage-25] Received ["SET", "foo", "123"] +[stage-25] replica-3: Expecting "SET bar 456" to be propagated +[stage-25] replica-3: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbar\r\n$3\r\n456\r\n" +[stage-25] replica-3: Received RESP array: ["SET", "bar", "456"] +[stage-25] Received ["SET", "bar", "456"] +[stage-25] replica-3: Expecting "SET baz 789" to be propagated +[stage-25] replica-3: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbaz\r\n$3\r\n789\r\n" +[stage-25] replica-3: Received RESP array: ["SET", "baz", "789"] +[stage-25] Received ["SET", "baz", "789"] +[stage-25] Test passed. +[stage-25] Terminating program +[stage-25] Program terminated successfully + +[stage-24] Running tests for Stage #24: zn8 +[stage-24] $ ./spawn_redis_server.sh --port 6379 +[stage-24] replica: $ redis-cli PING +[stage-24] replica: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-24] replica: Received bytes: "+PONG\r\n" +[stage-24] replica: Received RESP simple string: "PONG" +[stage-24] Received "PONG" +[stage-24] replica: > REPLCONF listening-port 6380 +[stage-24] replica: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-24] replica: Received bytes: "+OK\r\n" +[stage-24] replica: Received RESP simple string: "OK" +[stage-24] Received "OK" +[stage-24] replica: > REPLCONF capa psync2 +[stage-24] replica: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-24] replica: Received bytes: "+OK\r\n" +[stage-24] replica: Received RESP simple string: "OK" +[stage-24] Received "OK" +[stage-24] replica: > PSYNC ? -1 +[stage-24] replica: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-24] replica: Received bytes: "+FULLRESYNC e5a1eafd2bea12ee082efe958df79486569b5ecd 0\r\n" +[stage-24] replica: Received RESP simple string: "FULLRESYNC e5a1eafd2bea12ee082efe958df79486569b5ecd 0" +[stage-24] Received "FULLRESYNC e5a1eafd2bea12ee082efe958df79486569b5ecd 0" +[stage-24] Reading RDB file... +[stage-24] replica: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc20\xbajf\xfa\bused-mem\xc2@S\x12\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(e5a1eafd2bea12ee082efe958df79486569b5ecd\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xff\xb7\x11|\x0eA\xea\xa0P" +[stage-24] Received RDB file +[stage-24] client: $ redis-cli SET foo 123 +[stage-24] client: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\n123\r\n" +[stage-24] client: Received bytes: "+OK\r\n" +[stage-24] client: Received RESP simple string: "OK" +[stage-24] Received "OK" +[stage-24] client: > SET bar 456 +[stage-24] client: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbar\r\n$3\r\n456\r\n" +[stage-24] client: Received bytes: "+OK\r\n" +[stage-24] client: Received RESP simple string: "OK" +[stage-24] Received "OK" +[stage-24] client: > SET baz 789 +[stage-24] client: Sent bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbaz\r\n$3\r\n789\r\n" +[stage-24] client: Received bytes: "+OK\r\n" +[stage-24] client: Received RESP simple string: "OK" +[stage-24] Received "OK" +[stage-24] Sent 3 SET commands to master successfully. +[stage-24] replica: Expecting "SET foo 123" to be propagated +[stage-24] replica: Received bytes: "*2\r\n$6\r\nSELECT\r\n$1\r\n0\r\n" +[stage-24] replica: Received RESP array: ["SELECT", "0"] +[stage-24] replica: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\n123\r\n" +[stage-24] replica: Received RESP array: ["SET", "foo", "123"] +[stage-24] Received ["SET", "foo", "123"] +[stage-24] replica: Expecting "SET bar 456" to be propagated +[stage-24] replica: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbar\r\n$3\r\n456\r\n" +[stage-24] replica: Received RESP array: ["SET", "bar", "456"] +[stage-24] Received ["SET", "bar", "456"] +[stage-24] replica: Expecting "SET baz 789" to be propagated +[stage-24] replica: Received bytes: "*3\r\n$3\r\nSET\r\n$3\r\nbaz\r\n$3\r\n789\r\n" +[stage-24] replica: Received RESP array: ["SET", "baz", "789"] +[stage-24] Received ["SET", "baz", "789"] +[stage-24] Test passed. +[stage-24] Terminating program +[stage-24] Program terminated successfully + +[stage-23] Running tests for Stage #23: cf8 +[stage-23] $ ./spawn_redis_server.sh --port 6379 +[stage-23] client: $ redis-cli PING +[stage-23] client: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-23] client: Received bytes: "+PONG\r\n" +[stage-23] client: Received RESP simple string: "PONG" +[stage-23] Received "PONG" +[stage-23] client: > REPLCONF listening-port 6380 +[stage-23] client: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-23] client: Received bytes: "+OK\r\n" +[stage-23] client: Received RESP simple string: "OK" +[stage-23] Received "OK" +[stage-23] client: > REPLCONF capa psync2 +[stage-23] client: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-23] client: Received bytes: "+OK\r\n" +[stage-23] client: Received RESP simple string: "OK" +[stage-23] Received "OK" +[stage-23] client: > PSYNC ? -1 +[stage-23] client: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-23] client: Received bytes: "+FULLRESYNC a2376a1388ef2380961894a63a1165565286a560 0\r\n" +[stage-23] client: Received RESP simple string: "FULLRESYNC a2376a1388ef2380961894a63a1165565286a560 0" +[stage-23] Received "FULLRESYNC a2376a1388ef2380961894a63a1165565286a560 0" +[stage-23] Reading RDB file... +[stage-23] client: Received bytes: "$171\r\nREDIS0011\xfa\tredis-ver\x057.2.4\xfa\nredis-bits\xc0@\xfa\x05ctime\xc20\xbajf\xfa\bused-mem\xc2\xf0\r\x12\x00\xfa\x0erepl-stream-db\xc0\x00\xfa\arepl-id(a2376a1388ef2380961894a63a1165565286a560\xfa\vrepl-offset\xc0\x00\xfa\baof-base\xc0\x00\xff7\xd9\xdd rH\xea\xc6" +[stage-23] Received RDB file +[stage-23] Test passed. +[stage-23] Terminating program +[stage-23] Program terminated successfully + +[stage-22] Running tests for Stage #22: vm3 +[stage-22] $ ./spawn_redis_server.sh --port 6379 +[stage-22] client: $ redis-cli PING +[stage-22] client: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-22] client: Received bytes: "+PONG\r\n" +[stage-22] client: Received RESP simple string: "PONG" +[stage-22] Received "PONG" +[stage-22] client: > REPLCONF listening-port 6380 +[stage-22] client: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-22] client: Received bytes: "+OK\r\n" +[stage-22] client: Received RESP simple string: "OK" +[stage-22] Received "OK" +[stage-22] client: > REPLCONF capa psync2 +[stage-22] client: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-22] client: Received bytes: "+OK\r\n" +[stage-22] client: Received RESP simple string: "OK" +[stage-22] Received "OK" +[stage-22] client: > PSYNC ? -1 +[stage-22] client: Sent bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-22] client: Received bytes: "+FULLRESYNC 248eea90ce5d97deb3db48b04e9628fcc3ef6431 0\r\n" +[stage-22] client: Received RESP simple string: "FULLRESYNC 248eea90ce5d97deb3db48b04e9628fcc3ef6431 0" +[stage-22] Received "FULLRESYNC 248eea90ce5d97deb3db48b04e9628fcc3ef6431 0" +[stage-22] Test passed. +[stage-22] Terminating program +[stage-22] Program terminated successfully + +[stage-21] Running tests for Stage #21: fj0 +[stage-21] $ ./spawn_redis_server.sh --port 6379 +[stage-21] client: $ redis-cli PING +[stage-21] client: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-21] client: Received bytes: "+PONG\r\n" +[stage-21] client: Received RESP simple string: "PONG" +[stage-21] Received "PONG" +[stage-21] client: > REPLCONF listening-port 6380 +[stage-21] client: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-21] client: Received bytes: "+OK\r\n" +[stage-21] client: Received RESP simple string: "OK" +[stage-21] Received "OK" +[stage-21] client: > REPLCONF capa psync2 +[stage-21] client: Sent bytes: "*3\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-21] client: Received bytes: "+OK\r\n" +[stage-21] client: Received RESP simple string: "OK" +[stage-21] Received "OK" +[stage-21] Test passed. +[stage-21] Terminating program +[stage-21] Program terminated successfully + +[stage-20] Running tests for Stage #20: ju6 +[stage-20] Master is running on port 6379 +[stage-20] $ ./spawn_redis_server.sh --port 6380 --replicaof "localhost 6379" +[stage-20] master: Waiting for replica to initiate handshake with "PING" command +[stage-20] master: Received bytes: "*1\r\n$4\r\nPING\r\n" +[stage-20] master: Received RESP array: ["PING"] +[stage-20] Received ["PING"] +[stage-20] master: Sent "PONG" +[stage-20] master: Sent bytes: "+PONG\r\n" +[stage-20] master: Waiting for replica to send "REPLCONF listening-port 6380" command +[stage-20] master: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-20] master: Received RESP array: ["REPLCONF", "listening-port", "6380"] +[stage-20] Received ["REPLCONF", "listening-port", "6380"] +[stage-20] master: Sent "OK" +[stage-20] master: Sent bytes: "+OK\r\n" +[stage-20] master: Waiting for replica to send "REPLCONF capa" command +[stage-20] master: Received bytes: "*5\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$3\r\neof\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-20] master: Received RESP array: ["REPLCONF", "capa", "eof", "capa", "psync2"] +[stage-20] Received ["REPLCONF", "capa", "eof", "capa", "psync2"] +[stage-20] master: Sent "OK" +[stage-20] master: Sent bytes: "+OK\r\n" +[stage-20] master: Waiting for replica to send "PSYNC" command +[stage-20] master: Received bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-20] master: Received RESP array: ["PSYNC", "?", "-1"] +[stage-20] Received ["PSYNC", "?", "-1"] +[stage-20] master: Sent "FULLRESYNC 75cd7bc10c49047e0d163660f3b90625b1af31dc 0" +[stage-20] master: Sent bytes: "+FULLRESYNC 75cd7bc10c49047e0d163660f3b90625b1af31dc 0\r\n" +[stage-20] Test passed. +[stage-20] Terminating program +[stage-20] Program terminated successfully + +[stage-19] Running tests for Stage #19: eh4 +[stage-19] Master is running on port 6379 +[stage-19] $ ./spawn_redis_server.sh --port 6380 --replicaof "localhost 6379" +[stage-19] master: Waiting for replica to initiate handshake with "PING" command +[stage-19] master: Received bytes: "*1\r\n$4\r\nPING\r\n" +[stage-19] master: Received RESP array: ["PING"] +[stage-19] Received ["PING"] +[stage-19] master: Sent "PONG" +[stage-19] master: Sent bytes: "+PONG\r\n" +[stage-19] master: Waiting for replica to send "REPLCONF listening-port 6380" command +[stage-19] master: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-19] master: Received RESP array: ["REPLCONF", "listening-port", "6380"] +[stage-19] Received ["REPLCONF", "listening-port", "6380"] +[stage-19] master: Sent "OK" +[stage-19] master: Sent bytes: "+OK\r\n" +[stage-19] master: Waiting for replica to send "REPLCONF capa" command +[stage-19] master: Received bytes: "*5\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$3\r\neof\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-19] master: Received RESP array: ["REPLCONF", "capa", "eof", "capa", "psync2"] +[stage-19] Received ["REPLCONF", "capa", "eof", "capa", "psync2"] +[stage-19] master: Sent "OK" +[stage-19] master: Sent bytes: "+OK\r\n" +[stage-19] Test passed. +[stage-19] Terminating program +[stage-19] Program terminated successfully + +[stage-18] Running tests for Stage #18: gl7 +[stage-18] Master is running on port 6379. +[stage-18] $ ./spawn_redis_server.sh --port 6380 --replicaof "localhost 6379" +[stage-18] master: Waiting for replica to initiate handshake with "PING" command +[stage-18] master: Received bytes: "*1\r\n$4\r\nPING\r\n" +[stage-18] master: Received RESP array: ["PING"] +[stage-18] Received ["PING"] +[stage-18] master: Sent "PONG" +[stage-18] master: Sent bytes: "+PONG\r\n" +[stage-18] Test passed. +[stage-18] Terminating program +[stage-18] Program terminated successfully + +[stage-17] Running tests for Stage #17: xc1 +[stage-17] $ ./spawn_redis_server.sh +[stage-17] client: $ redis-cli INFO replication +[stage-17] client: Sent bytes: "*2\r\n$4\r\nINFO\r\n$11\r\nreplication\r\n" +[stage-17] client: Received bytes: "$349\r\n# Replication\r\nrole:master\r\nconnected_slaves:0\r\nmaster_failover_state:no-failover\r\nmaster_replid:3cdfe5d954e4145b60052f60d607233e0a306eba\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:0\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:0\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:0\r\nrepl_backlog_histlen:0\r\n\r\n" +[stage-17] client: Received RESP bulk string: "# Replication\r\nrole:master\r\nconnected_slaves:0\r\nmaster_failover_state:no-failover\r\nmaster_replid:3cdfe5d954e4145b60052f60d607233e0a306eba\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:0\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:0\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:0\r\nrepl_backlog_histlen:0\r\n" +[stage-17] Received "# Replication\r\nrole:master\r\nconnected_slaves:0\r\nmaster_failover_state:no-failover\r\nmaster_replid:3cdfe5d954e4145b60052f60d607233e0a306eba\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:0\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:0\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:0\r\nrepl_backlog_histlen:0\r\n" +[stage-17] Found master_replid:xxx in response. +[stage-17] Found master_reploffset:0 in response. +[stage-17] Test passed. +[stage-17] Terminating program +[stage-17] Program terminated successfully + +[stage-16] Running tests for Stage #16: hc6 +[stage-16] Master is running on port 6379 +[stage-16] $ ./spawn_redis_server.sh --port 6380 --replicaof "localhost 6379" +[stage-16] master: Received bytes: "*1\r\n$4\r\nPING\r\n" +[stage-16] master: Received RESP array: ["PING"] +[stage-16] master: Sent "PONG" +[stage-16] master: Sent bytes: "+PONG\r\n" +[stage-16] master: Received bytes: "*3\r\n$8\r\nREPLCONF\r\n$14\r\nlistening-port\r\n$4\r\n6380\r\n" +[stage-16] master: Received RESP array: ["REPLCONF", "listening-port", "6380"] +[stage-16] master: Sent "OK" +[stage-16] master: Sent bytes: "+OK\r\n" +[stage-16] master: Received bytes: "*5\r\n$8\r\nREPLCONF\r\n$4\r\ncapa\r\n$3\r\neof\r\n$4\r\ncapa\r\n$6\r\npsync2\r\n" +[stage-16] master: Received RESP array: ["REPLCONF", "capa", "eof", "capa", "psync2"] +[stage-16] master: Sent "OK" +[stage-16] master: Sent bytes: "+OK\r\n" +[stage-16] master: Received bytes: "*3\r\n$5\r\nPSYNC\r\n$1\r\n?\r\n$2\r\n-1\r\n" +[stage-16] master: Received RESP array: ["PSYNC", "?", "-1"] +[stage-16] master: Sent "FULLRESYNC 75cd7bc10c49047e0d163660f3b90625b1af31dc 0" +[stage-16] master: Sent bytes: "+FULLRESYNC 75cd7bc10c49047e0d163660f3b90625b1af31dc 0\r\n" +[stage-16] master: Sent bytes: "$88\r\nREDIS0011\xfa\tredis-ver\x057.2.0\xfa\nredis-bits\xc0@\xfa\x05ctime\xc2m\b\xbce\xfa\bused-mem°\xc4\x10\x00\xfa\baof-base\xc0\x00\xff\xf0n;\xfe\xc0\xffZ\xa2" +[stage-16] client: $ redis-cli INFO replication +[stage-16] client: Sent bytes: "*2\r\n$4\r\nINFO\r\n$11\r\nreplication\r\n" +[stage-16] client: Received bytes: "$613\r\n# Replication\r\nrole:slave\r\nmaster_host:localhost\r\nmaster_port:6379\r\nmaster_link_status:down\r\nmaster_last_io_seconds_ago:-1\r\nmaster_sync_in_progress:0\r\nslave_read_repl_offset:0\r\nslave_repl_offset:0\r\nmaster_link_down_since_seconds:0\r\nslave_priority:100\r\nslave_read_only:1\r\nreplica_announced:1\r\nconnected_slaves:0\r\nmaster_failover_state:no-failover\r\nmaster_replid:75cd7bc10c49047e0d163660f3b90625b1af31dc\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:0\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:1\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:1\r\nrepl_backlog_histlen:0\r\n\r\n" +[stage-16] client: Received RESP bulk string: "# Replication\r\nrole:slave\r\nmaster_host:localhost\r\nmaster_port:6379\r\nmaster_link_status:down\r\nmaster_last_io_seconds_ago:-1\r\nmaster_sync_in_progress:0\r\nslave_read_repl_offset:0\r\nslave_repl_offset:0\r\nmaster_link_down_since_seconds:0\r\nslave_priority:100\r\nslave_read_only:1\r\nreplica_announced:1\r\nconnected_slaves:0\r\nmaster_failover_state:no-failover\r\nmaster_replid:75cd7bc10c49047e0d163660f3b90625b1af31dc\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:0\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:1\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:1\r\nrepl_backlog_histlen:0\r\n" +[stage-16] Received "# Replication\r\nrole:slave\r\nmaster_host:localhost\r\nmaster_port:6379\r\nmaster_link_status:down\r\nmaster_last_io_seconds_ago:-1\r\nmaster_sync_in_progress:0\r\nslave_read_repl_offset:0\r\nslave_repl_offset:0\r\nmaster_link_down_since_seconds:0\r\nslave_priority:100\r\nslave_read_only:1\r\nreplica_announced:1\r\nconnected_slaves:0\r\nmaster_failover_state:no-failover\r\nmaster_replid:75cd7bc10c49047e0d163660f3b90625b1af31dc\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:0\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:1\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:1\r\nrepl_backlog_histlen:0\r\n" +[stage-16] Found role:slave in response. +[stage-16] Test passed. +[stage-16] Terminating program +[stage-16] Program terminated successfully + +[stage-15] Running tests for Stage #15: ye5 +[stage-15] $ ./spawn_redis_server.sh +[stage-15] client: $ redis-cli INFO replication +[stage-15] client: Sent bytes: "*2\r\n$4\r\nINFO\r\n$11\r\nreplication\r\n" +[stage-15] client: Received bytes: "$349\r\n# Replication\r\nrole:master\r\nconnected_slaves:0\r\nmaster_failover_state:no-failover\r\nmaster_replid:016b8e38b315f4694186a47ad40865ef5fdcb8fd\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:0\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:0\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:0\r\nrepl_backlog_histlen:0\r\n\r\n" +[stage-15] client: Received RESP bulk string: "# Replication\r\nrole:master\r\nconnected_slaves:0\r\nmaster_failover_state:no-failover\r\nmaster_replid:016b8e38b315f4694186a47ad40865ef5fdcb8fd\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:0\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:0\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:0\r\nrepl_backlog_histlen:0\r\n" +[stage-15] Received "# Replication\r\nrole:master\r\nconnected_slaves:0\r\nmaster_failover_state:no-failover\r\nmaster_replid:016b8e38b315f4694186a47ad40865ef5fdcb8fd\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:0\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:0\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:0\r\nrepl_backlog_histlen:0\r\n" +[stage-15] Found role:master in response. +[stage-15] Test passed. +[stage-15] Terminating program +[stage-15] Program terminated successfully + +[stage-14] Running tests for Stage #14: bw1 +[stage-14] $ ./spawn_redis_server.sh --port 6382 +[stage-14] Connecting to port 6382... +[stage-14] Connection successful +[stage-14] Test passed. +[stage-14] Terminating program +[stage-14] Program terminated successfully + +[stage-13] Running tests for Stage #13: sm4 +[stage-13] $ ./spawn_redis_server.sh --dir /private/var/folders/5l/z5y3dkwn68sgb6htzc5w7vnm0000gn/T/rdbfiles2418730328 --dbfilename pear.rdb +[stage-13] client: $ redis-cli GET pineapple +[stage-13] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$9\r\npineapple\r\n" +[stage-13] client: Received bytes: "$4\r\npear\r\n" +[stage-13] client: Received RESP bulk string: "pear" +[stage-13] Received "pear" +[stage-13] client: > GET raspberry +[stage-13] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$9\r\nraspberry\r\n" +[stage-13] client: Received bytes: "$-1\r\n" +[stage-13] client: Received RESP null bulk string: "$-1\r\n" +[stage-13] Received "$-1\r\n" +[stage-13] client: > GET apple +[stage-13] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$5\r\napple\r\n" +[stage-13] client: Received bytes: "$10\r\nstrawberry\r\n" +[stage-13] client: Received RESP bulk string: "strawberry" +[stage-13] Received "strawberry" +[stage-13] Test passed. +[stage-13] Terminating program +[stage-13] Program terminated successfully + +[stage-12] Running tests for Stage #12: dq3 +[stage-12] Created RDB file with key-value pairs: "orange"="grape", "blueberry"="pineapple", "grape"="mango", "pineapple"="strawberry" +[stage-12] $ ./spawn_redis_server.sh --dir /private/var/folders/5l/z5y3dkwn68sgb6htzc5w7vnm0000gn/T/rdbfiles512269911 --dbfilename banana.rdb +[stage-12] client: $ redis-cli GET orange +[stage-12] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$6\r\norange\r\n" +[stage-12] client: Received bytes: "$5\r\ngrape\r\n" +[stage-12] client: Received RESP bulk string: "grape" +[stage-12] Received "grape" +[stage-12] client: > GET blueberry +[stage-12] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$9\r\nblueberry\r\n" +[stage-12] client: Received bytes: "$9\r\npineapple\r\n" +[stage-12] client: Received RESP bulk string: "pineapple" +[stage-12] Received "pineapple" +[stage-12] client: > GET grape +[stage-12] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$5\r\ngrape\r\n" +[stage-12] client: Received bytes: "$5\r\nmango\r\n" +[stage-12] client: Received RESP bulk string: "mango" +[stage-12] Received "mango" +[stage-12] client: > GET pineapple +[stage-12] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$9\r\npineapple\r\n" +[stage-12] client: Received bytes: "$10\r\nstrawberry\r\n" +[stage-12] client: Received RESP bulk string: "strawberry" +[stage-12] Received "strawberry" +[stage-12] Test passed. +[stage-12] Terminating program +[stage-12] Program terminated successfully + +[stage-11] Running tests for Stage #11: jw4 +[stage-11] Created RDB file with 3 keys: ["apple" "banana" "pineapple"] +[stage-11] $ ./spawn_redis_server.sh --dir /private/var/folders/5l/z5y3dkwn68sgb6htzc5w7vnm0000gn/T/rdbfiles2851341621 --dbfilename pear.rdb +[stage-11] client: $ redis-cli KEYS * +[stage-11] client: Sent bytes: "*2\r\n$4\r\nKEYS\r\n$1\r\n*\r\n" +[stage-11] client: Received bytes: "*3\r\n$9\r\npineapple\r\n$6\r\nbanana\r\n$5\r\napple\r\n" +[stage-11] client: Received RESP array: ["pineapple", "banana", "apple"] +[stage-11] Received ["pineapple", "banana", "apple"] +[stage-11] Test passed. +[stage-11] Terminating program +[stage-11] Program terminated successfully + +[stage-10] Running tests for Stage #10: gc6 +[stage-10] Created RDB file with single key-value pair: banana="mango" +[stage-10] $ ./spawn_redis_server.sh --dir /private/var/folders/5l/z5y3dkwn68sgb6htzc5w7vnm0000gn/T/rdbfiles2756443023 --dbfilename grape.rdb +[stage-10] client: $ redis-cli GET banana +[stage-10] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$6\r\nbanana\r\n" +[stage-10] client: Received bytes: "$5\r\nmango\r\n" +[stage-10] client: Received RESP bulk string: "mango" +[stage-10] Received "mango" +[stage-10] Test passed. +[stage-10] Terminating program +[stage-10] Program terminated successfully + +[stage-9] Running tests for Stage #9: jz6 +[stage-9] Created RDB file with single key: "pear" +[stage-9] $ ./spawn_redis_server.sh --dir /private/var/folders/5l/z5y3dkwn68sgb6htzc5w7vnm0000gn/T/rdbfiles3709925311 --dbfilename blueberry.rdb +[stage-9] client: $ redis-cli KEYS * +[stage-9] client: Sent bytes: "*2\r\n$4\r\nKEYS\r\n$1\r\n*\r\n" +[stage-9] client: Received bytes: "*1\r\n$4\r\npear\r\n" +[stage-9] client: Received RESP array: ["pear"] +[stage-9] Received ["pear"] +[stage-9] Test passed. +[stage-9] Terminating program +[stage-9] Program terminated successfully + +[stage-8] Running tests for Stage #8: zg5 +[stage-8] $ ./spawn_redis_server.sh --dir /private/var/folders/5l/z5y3dkwn68sgb6htzc5w7vnm0000gn/T/rdbfiles3936528252 --dbfilename grape.rdb +[stage-8] client: $ redis-cli CONFIG GET dir +[stage-8] client: Sent bytes: "*3\r\n$6\r\nCONFIG\r\n$3\r\nGET\r\n$3\r\ndir\r\n" +[stage-8] client: Received bytes: "*2\r\n$3\r\ndir\r\n$75\r\n/private/var/folders/5l/z5y3dkwn68sgb6htzc5w7vnm0000gn/T/rdbfiles3936528252\r\n" +[stage-8] client: Received RESP array: ["dir", "/private/var/folders/5l/z5y3dkwn68sgb6htzc5w7vnm0000gn/T/rdbfiles3936528252"] +[stage-8] Received ["dir", "/private/var/folders/5l/z5y3dkwn68sgb6htzc5w7vnm0000gn/T/rdbfiles3936528252"] +[stage-8] Test passed. +[stage-8] Terminating program +[stage-8] Program terminated successfully + +[stage-7] Running tests for Stage #7: yz1 +[stage-7] $ ./spawn_redis_server.sh +[stage-7] $ redis-cli SET mango grape px 100 +[stage-7] Sent bytes: "*5\r\n$3\r\nSET\r\n$5\r\nmango\r\n$5\r\ngrape\r\n$2\r\npx\r\n$3\r\n100\r\n" +[stage-7] Received bytes: "+OK\r\n" +[stage-7] Received RESP simple string: "OK" +[stage-7] Received "OK" +[stage-7] Received OK at 14:51:55.971 +[stage-7] Fetching key "mango" at 14:51:55.971 (should not be expired) +[stage-7] > GET mango +[stage-7] Sent bytes: "*2\r\n$3\r\nGET\r\n$5\r\nmango\r\n" +[stage-7] Received bytes: "$5\r\ngrape\r\n" +[stage-7] Received RESP bulk string: "grape" +[stage-7] Received "grape" +[stage-7] Sleeping for 101ms +[stage-7] Fetching key "mango" at 14:51:56.074 (should be expired) +[stage-7] > GET mango +[stage-7] Sent bytes: "*2\r\n$3\r\nGET\r\n$5\r\nmango\r\n" +[stage-7] Received bytes: "$-1\r\n" +[stage-7] Received RESP null bulk string: "$-1\r\n" +[stage-7] Received "$-1\r\n" +[stage-7] Test passed. +[stage-7] Terminating program +[stage-7] Program terminated successfully + +[stage-6] Running tests for Stage #6: la7 +[stage-6] $ ./spawn_redis_server.sh +[stage-6] Setting key pineapple to banana +[stage-6] $ redis-cli SET pineapple banana +[stage-6] Sent bytes: "*3\r\n$3\r\nSET\r\n$9\r\npineapple\r\n$6\r\nbanana\r\n" +[stage-6] Received bytes: "+OK\r\n" +[stage-6] Received RESP simple string: "OK" +[stage-6] Received "OK" +[stage-6] Getting key pineapple +[stage-6] > GET pineapple +[stage-6] Sent bytes: "*2\r\n$3\r\nGET\r\n$9\r\npineapple\r\n" +[stage-6] Received bytes: "$6\r\nbanana\r\n" +[stage-6] Received RESP bulk string: "banana" +[stage-6] Received "banana" +[stage-6] Test passed. +[stage-6] Terminating program +[stage-6] Program terminated successfully + +[stage-5] Running tests for Stage #5: qq0 +[stage-5] $ ./spawn_redis_server.sh +[stage-5] $ redis-cli ECHO pear +[stage-5] Sent bytes: "*2\r\n$4\r\nECHO\r\n$4\r\npear\r\n" +[stage-5] Received bytes: "$4\r\npear\r\n" +[stage-5] Received RESP bulk string: "pear" +[stage-5] Received "pear" +[stage-5] Test passed. +[stage-5] Terminating program +[stage-5] Program terminated successfully + +[stage-4] Running tests for Stage #4: zu2 +[stage-4] $ ./spawn_redis_server.sh +[stage-4] client-1: $ redis-cli PING +[stage-4] client-1: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-4] client-1: Received bytes: "+PONG\r\n" +[stage-4] client-1: Received RESP simple string: "PONG" +[stage-4] Received "PONG" +[stage-4] client-2: $ redis-cli PING +[stage-4] client-2: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-4] client-2: Received bytes: "+PONG\r\n" +[stage-4] client-2: Received RESP simple string: "PONG" +[stage-4] Received "PONG" +[stage-4] client-1: > PING +[stage-4] client-1: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-4] client-1: Received bytes: "+PONG\r\n" +[stage-4] client-1: Received RESP simple string: "PONG" +[stage-4] Received "PONG" +[stage-4] client-1: > PING +[stage-4] client-1: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-4] client-1: Received bytes: "+PONG\r\n" +[stage-4] client-1: Received RESP simple string: "PONG" +[stage-4] Received "PONG" +[stage-4] client-2: > PING +[stage-4] client-2: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-4] client-2: Received bytes: "+PONG\r\n" +[stage-4] client-2: Received RESP simple string: "PONG" +[stage-4] Received "PONG" +[stage-4] client-1: Success, closing connection... +[stage-4] client-3: $ redis-cli PING +[stage-4] client-3: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-4] client-3: Received bytes: "+PONG\r\n" +[stage-4] client-3: Received RESP simple string: "PONG" +[stage-4] Received "PONG" +[stage-4] client-2: Success, closing connection... +[stage-4] client-3: Success, closing connection... +[stage-4] Test passed. +[stage-4] Terminating program +[stage-4] Program terminated successfully + +[stage-3] Running tests for Stage #3: wy1 +[stage-3] $ ./spawn_redis_server.sh +[stage-3] client-1: $ redis-cli PING +[stage-3] client-1: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-3] client-1: Received bytes: "+PONG\r\n" +[stage-3] client-1: Received RESP simple string: "PONG" +[stage-3] Received "PONG" +[stage-3] client-1: > PING +[stage-3] client-1: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-3] client-1: Received bytes: "+PONG\r\n" +[stage-3] client-1: Received RESP simple string: "PONG" +[stage-3] Received "PONG" +[stage-3] client-1: > PING +[stage-3] client-1: Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-3] client-1: Received bytes: "+PONG\r\n" +[stage-3] client-1: Received RESP simple string: "PONG" +[stage-3] Received "PONG" +[stage-3] Success, closing connection... +[stage-3] Test passed. +[stage-3] Terminating program +[stage-3] Program terminated successfully + +[stage-2] Running tests for Stage #2: rg2 +[stage-2] $ ./spawn_redis_server.sh +[stage-2] Connection established, sending ping command... +[stage-2] $ redis-cli PING +[stage-2] Sent bytes: "*1\r\n$4\r\nPING\r\n" +[stage-2] Received bytes: "+PONG\r\n" +[stage-2] Received RESP simple string: "PONG" +[stage-2] Received "PONG" +[stage-2] Test passed. +[stage-2] Terminating program +[stage-2] Program terminated successfully + +[stage-1] Running tests for Stage #1: jm1 +[stage-1] $ ./spawn_redis_server.sh +[stage-1] Connecting to port 6379... +[stage-1] Connection successful +[stage-1] Test passed. +[stage-1] Terminating program +[stage-1] Program terminated successfully