@@ -52,130 +52,6 @@ jobs:
5252 file : ./coverage.out
5353 fail_ci_if_error : false
5454
55- functional-test :
56- runs-on : ubuntu-latest
57-
58- steps :
59- - name : Checkout code
60- uses : actions/checkout@v6
61-
62- - name : Set up Go
63- uses : actions/setup-go@v5
64- with :
65- go-version : ' 1.24'
66-
67- - name : Install dependencies
68- run : |
69- sudo apt-get update
70- sudo apt-get install -y redis-tools netcat-openbsd
71-
72- - name : Build example server
73- run : |
74- cd example/memory_kv
75- go build -o server
76-
77- - name : Start server
78- run : |
79- cd example/memory_kv
80- ./server -addr "127.0.0.1:6380" > server.log 2>&1 &
81- SERVER_PID=$!
82- echo $SERVER_PID > server.pid
83-
84- for i in {1..30}; do
85- if nc -z 127.0.0.1 6380; then
86- echo "Server is ready"
87- break
88- fi
89- sleep 1
90- echo "Waiting for server to start... ($i/30)"
91- done
92-
93- if ! nc -z 127.0.0.1 6380; then
94- echo "Server failed to start"
95- cat server.log
96- exit 1
97- fi
98-
99- - name : Test PING command
100- run : |
101- RESPONSE=$(redis-cli -p 6380 PING)
102- echo "PING response: $RESPONSE"
103- [ "$RESPONSE" = "PONG" ]
104-
105- - name : Test SET command
106- run : |
107- RESPONSE=$(redis-cli -p 6380 SET mykey "hello world")
108- echo "SET response: $RESPONSE"
109- [ "$RESPONSE" = "OK" ]
110-
111- - name : Test GET command
112- run : |
113- VALUE=$(redis-cli -p 6380 GET mykey)
114- echo "GET response: $VALUE"
115- [ "$VALUE" = "hello world" ]
116-
117- - name : Test DEL command
118- run : |
119- redis-cli -p 6380 SET delkey "value"
120- RESPONSE=$(redis-cli -p 6380 DEL delkey)
121- echo "DEL response: $RESPONSE"
122- [ "$RESPONSE" = "1" ]
123-
124- - name : Test binary data
125- run : |
126- VALUE=$(redis-cli -p 6380 --binary SET binkey "binary\x00data" || echo "OK")
127- [ "$VALUE" = "OK" ]
128- RETRIEVED=$(redis-cli -p 6380 --raw GET binkey || echo "")
129- [ "$RETRIEVED" = "binary\x00data" ]
130-
131- - name : Test large value
132- run : |
133- LARGE_VALUE=$(python3 -c 'print("A" * 10000)')
134- RESPONSE=$(redis-cli -p 6380 SET largekey "$LARGE_VALUE")
135- [ "$RESPONSE" = "OK" ]
136- RETRIEVED=$(redis-cli -p 6380 GET largekey)
137- [ "$RETRIEVED" = "$LARGE_VALUE" ]
138-
139- - name : Test multiple SET/GET operations
140- run : |
141- for i in {1..100}; do
142- redis-cli -p 6380 SET "key$i" "value$i" > /dev/null
143- done
144- for i in {1..100}; do
145- VALUE=$(redis-cli -p 6380 GET "key$i" || echo "")
146- if [ "$VALUE" != "value$i" ]; then
147- echo "Failed for key$i: got '$VALUE', expected 'value$i'"
148- exit 1
149- fi
150- done
151- echo "100 SET/GET operations completed successfully"
152-
153- - name : Test QUIT command
154- run : |
155- RESPONSE=$(redis-cli -p 6380 QUIT)
156- echo "QUIT response: $RESPONSE"
157- [ "$RESPONSE" = "OK" ]
158-
159- - name : Test CONFIG command (for compatibility)
160- run : |
161- RESPONSE=$(redis-cli -p 6380 CONFIG GET maxmemory-policy 2>&1 || true)
162- echo "CONFIG response: $RESPONSE"
163- [ -n "$RESPONSE" ]
164-
165- - name : Stop server
166- if : always()
167- run : |
168- cd example/memory_kv
169- if [ -f server.pid ]; then
170- kill $(cat server.pid) || true
171- rm server.pid
172- fi
173-
174- - name : Show server logs
175- if : failure()
176- run : |
177- cat example/memory_kv/server.log || true
178-
17955 benchmark-test :
18056 runs-on : ubuntu-latest
18157
0 commit comments