Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/fixtures.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
jobs:
regenerate_fixtures:
if: github.event.label.name == 'regenerate-fixtures'
uses: codecrafters-io/tester-utils/.github/workflows/fixtures.yml@master
uses: codecrafters-io/tester-utils/.github/workflows/fixtures.yml@ci-make-setup
with:
tester_repo: redis-tester
secrets: inherit
13 changes: 13 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,16 @@ test_all_with_redis:
make test_rdb_with_redis || true
make test_streams_with_redis || true
make test_txn_with_redis || true

setup:
echo "Setting up redis-tester prerequisites for Linux"

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
@echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(shell lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

sudo apt-get update && sudo apt-get install redis -y

sudo service redis-server stop

echo "Setup complete!"
6 changes: 3 additions & 3 deletions internal/test_helpers/fixtures/expiry/pass
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ Debug = true
[stage-7] Received bytes: "+OK\r\n"
[stage-7] Received RESP simple string: "OK"
[stage-7] Received "OK"
[stage-7] Received OK at 17:57:54.074
[stage-7] Fetching key "apple" at 17:57:54.074 (should not be expired)
[stage-7] Received OK at 08:17:43.503
[stage-7] Fetching key "apple" at 08:17:43.503 (should not be expired)
[stage-7] > GET apple
[stage-7] Sent bytes: "*2\r\n$3\r\nGET\r\n$5\r\napple\r\n"
[stage-7] Received bytes: "$9\r\nblueberry\r\n"
[stage-7] Received RESP bulk string: "blueberry"
[stage-7] Received "blueberry"
[stage-7] Sleeping for 101ms
[stage-7] Fetching key "apple" at 17:57:54.176 (should be expired)
[stage-7] Fetching key "apple" at 08:17:43.606 (should be expired)
[stage-7] > GET apple
[stage-7] Sent bytes: "*2\r\n$3\r\nGET\r\n$5\r\napple\r\n"
[stage-7] Received bytes: "$-1\r\n"
Expand Down
30 changes: 15 additions & 15 deletions internal/test_helpers/fixtures/rdb-read-value-with-expiry/pass
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Debug = true
[stage-13] 0070 | 70 6c 65 09 62 6c 75 65 62 65 72 72 79 ff 34 d0 | ple.blueberry.4.
[stage-13] 0080 | 8c 58 51 4a 5d 62 0a | .XQJ]b.
[stage-13] 
[stage-13] $ ./spawn_redis_server.sh --dir /tmp/rdbfiles3993504912 --dbfilename pear.rdb
[stage-13] $ ./spawn_redis_server.sh --dir /tmp/rdbfiles249740444 --dbfilename pear.rdb
[stage-13] client: $ redis-cli GET orange
[stage-13] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$6\r\norange\r\n"
[stage-13] client: Received bytes: "$10\r\nstrawberry\r\n"
Expand Down Expand Up @@ -50,7 +50,7 @@ Debug = true
[stage-12] 0070 | 6e 67 65 04 70 65 61 72 ff 33 20 d4 0d 23 b2 9b | nge.pear.3 ..#..
[stage-12] 0080 | af 0a | ..
[stage-12] 
[stage-12] $ ./spawn_redis_server.sh --dir /tmp/rdbfiles523278937 --dbfilename raspberry.rdb
[stage-12] $ ./spawn_redis_server.sh --dir /tmp/rdbfiles3402100153 --dbfilename raspberry.rdb
[stage-12] client: $ redis-cli 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: "$9\r\npineapple\r\n"
Expand Down Expand Up @@ -93,12 +93,12 @@ Debug = true
[stage-11] 0050 | 00 09 62 6c 75 65 62 65 72 72 79 04 70 65 61 72 | ..blueberry.pear
[stage-11] 0060 | ff 5c f3 42 ee 46 08 a6 3f 0a | .\.B.F..?.
[stage-11] 
[stage-11] $ ./spawn_redis_server.sh --dir /tmp/rdbfiles134944817 --dbfilename blueberry.rdb
[stage-11] $ ./spawn_redis_server.sh --dir /tmp/rdbfiles2751412102 --dbfilename blueberry.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\nblueberry\r\n$5\r\napple\r\n$6\r\nbanana\r\n"
[stage-11] client: Received RESP array: ["blueberry", "apple", "banana"]
[stage-11] Received ["blueberry", "apple", "banana"]
[stage-11] client: Received bytes: "*3\r\n$5\r\napple\r\n$6\r\nbanana\r\n$9\r\nblueberry\r\n"
[stage-11] client: Received RESP array: ["apple", "banana", "blueberry"]
[stage-11] Received ["apple", "banana", "blueberry"]
[stage-11] Test passed.
[stage-11] Terminating program
[stage-11] Program terminated successfully
Expand All @@ -114,7 +114,7 @@ Debug = true
[stage-10] 0030 | 72 61 70 65 09 70 69 6e 65 61 70 70 6c 65 ff 12 | rape.pineapple..
[stage-10] 0040 | 7d 54 51 cd 7a 5c 8d 0a | }TQ.z\..
[stage-10] 
[stage-10] $ ./spawn_redis_server.sh --dir /tmp/rdbfiles88667885 --dbfilename orange.rdb
[stage-10] $ ./spawn_redis_server.sh --dir /tmp/rdbfiles3639530909 --dbfilename orange.rdb
[stage-10] client: $ redis-cli GET grape
[stage-10] client: Sent bytes: "*2\r\n$3\r\nGET\r\n$5\r\ngrape\r\n"
[stage-10] client: Received bytes: "$9\r\npineapple\r\n"
Expand All @@ -135,7 +135,7 @@ Debug = true
[stage-9] 0030 | 61 6e 67 6f 09 70 69 6e 65 61 70 70 6c 65 ff 0c | ango.pineapple..
[stage-9] 0040 | 1b cb 91 b2 ed f6 19 0a | ........
[stage-9] 
[stage-9] $ ./spawn_redis_server.sh --dir /tmp/rdbfiles2978787751 --dbfilename pear.rdb
[stage-9] $ ./spawn_redis_server.sh --dir /tmp/rdbfiles3529067617 --dbfilename pear.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$5\r\nmango\r\n"
Expand All @@ -146,12 +146,12 @@ Debug = true
[stage-9] Program terminated successfully

[stage-8] Running tests for Stage #8: zg5
[stage-8] $ ./spawn_redis_server.sh --dir /tmp/rdbfiles3829876670 --dbfilename blueberry.rdb
[stage-8] $ ./spawn_redis_server.sh --dir /tmp/rdbfiles1475311201 --dbfilename blueberry.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$23\r\n/tmp/rdbfiles3829876670\r\n"
[stage-8] client: Received RESP array: ["dir", "/tmp/rdbfiles3829876670"]
[stage-8] Received ["dir", "/tmp/rdbfiles3829876670"]
[stage-8] client: Received bytes: "*2\r\n$3\r\ndir\r\n$23\r\n/tmp/rdbfiles1475311201\r\n"
[stage-8] client: Received RESP array: ["dir", "/tmp/rdbfiles1475311201"]
[stage-8] Received ["dir", "/tmp/rdbfiles1475311201"]
[stage-8] Test passed.
[stage-8] Terminating program
[stage-8] Program terminated successfully
Expand All @@ -163,15 +163,15 @@ Debug = true
[stage-7] Received bytes: "+OK\r\n"
[stage-7] Received RESP simple string: "OK"
[stage-7] Received "OK"
[stage-7] Received OK at 17:57:56.547
[stage-7] Fetching key "strawberry" at 17:57:56.547 (should not be expired)
[stage-7] Received OK at 08:17:26.438
[stage-7] Fetching key "strawberry" at 08:17:26.438 (should not be expired)
[stage-7] > GET strawberry
[stage-7] Sent bytes: "*2\r\n$3\r\nGET\r\n$10\r\nstrawberry\r\n"
[stage-7] Received bytes: "$4\r\npear\r\n"
[stage-7] Received RESP bulk string: "pear"
[stage-7] Received "pear"
[stage-7] Sleeping for 101ms
[stage-7] Fetching key "strawberry" at 17:57:56.650 (should be expired)
[stage-7] Fetching key "strawberry" at 08:17:26.540 (should be expired)
[stage-7] > GET strawberry
[stage-7] Sent bytes: "*2\r\n$3\r\nGET\r\n$10\r\nstrawberry\r\n"
[stage-7] Received bytes: "$-1\r\n"
Expand Down
Loading
Loading