Skip to content

Commit 428585c

Browse files
committed
Use Redis CE for 8.x redis stack related tests
1 parent 8644777 commit 428585c

File tree

8 files changed

+42
-24
lines changed

8 files changed

+42
-24
lines changed

.github/CONTRIBUTING.md

+12-4
Original file line numberDiff line numberDiff line change
@@ -47,20 +47,28 @@ To bring up the test environment for a specific Redis version (8.0-M02, 7.4.1, 7
4747
```bash
4848
make start-test-env version=8.0-M02 # Replace with desired version
4949
```
50+
To stop test environment:
51+
```bash
52+
make stop-test-env
53+
```
54+
To run tests using dockerized environment:
55+
```bash
56+
make test-on-docker
57+
```
5058

5159
## Option 2: Using docker compose commands directly
5260
Docker compose file can be found in `src/test/resources/env` folder.
53-
- **Redis 8.0-M02, 7.4.1, 7.2.6**
61+
- **Redis 8.0-M02**
5462
```bash
5563
rm -rf /tmp/redis-env-work
5664
export REDIS_VERSION=8.0-M02
5765
docker compose up
5866
```
59-
- **Redis 6.2.16**
60-
- **NOTE:** Redis 6.2.16 uses a dedicated `.env.v6.2.16`.
67+
- **Redis 7.4.1, 7.2.6, 6.2.16,**
6168
```bash
6269
rm -rf /tmp/redis-env-work
63-
docker compose --env-file .env.v6.2.16 up
70+
export REDIS_VERSION=6.2.16
71+
docker compose --env-file .env --env-file .env.v6.2.16 up
6472
```
6573

6674

.github/workflows/test-on-docker.yml

+1-5
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,7 @@ jobs:
6464
run: |
6565
mkdir -m 777 $REDIS_ENV_WORK_DIR
6666
export REDIS_VERSION="${{ matrix.redis_version }}"
67-
export COMPOSE_ENV_FILES="src/test/resources/env/.env"
68-
if [[ "${{ matrix.redis_version }}" == "6.2.16" ]]; then
69-
COMPOSE_ENV_FILES="src/test/resources/env/.env.v${{ matrix.redis_version }}"
70-
fi
71-
docker compose -f src/test/resources/env/docker-compose.yml up -d
67+
make start-test-env version=$REDIS_VERSION
7268
- name: Maven offline
7369
run: |
7470
mvn -q dependency:go-offline

Makefile

+12-6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ PATH := ./redis-git/src:${PATH}
33
# Supported test env versions
44
SUPPORTED_TEST_ENV_VERSIONS := 8.0-M02 7.4.1 7.2.6 6.2.16
55
DEFAULT_TEST_ENV_VERSION := 8.0-M02
6+
REDIS_ENV_WORK_DIR := $(or ${REDIS_ENV_WORK_DIR},/tmp/redis-env-work)
67

78
define REDIS1_CONF
89
daemonize yes
@@ -576,19 +577,24 @@ start-test-env:
576577
echo "Error: Invalid version '$$version'. Supported versions are: $(SUPPORTED_TEST_ENV_VERSIONS)."; \
577578
exit 1; \
578579
fi; \
579-
env_file="src/test/resources/env/.env"; \
580-
if [ "$$version" = "6.2.16" ]; then \
581-
env_file="src/test/resources/env/.env.v6.2.16"; \
580+
default_env_file="src/test/resources/env/.env"; \
581+
custom_env_file="src/test/resources/env/.env.v$$version"; \
582+
env_files="--env-file $$default_env_file"; \
583+
if [ -f "$$custom_env_file" ]; then \
584+
env_files="$$env_files --env-file $$custom_env_file"; \
582585
fi; \
583-
rm -rf /tmp/redis-env-work; \
586+
rm -rf "$(REDIS_ENV_WORK_DIR)"; \
587+
mkdir -p "$(REDIS_ENV_WORK_DIR)"; \
584588
export REDIS_VERSION=$$version && \
585-
docker compose --env-file $$env_file -f src/test/resources/env/docker-compose.yml up -d; \
589+
docker compose $$env_files -f src/test/resources/env/docker-compose.yml up -d; \
586590
echo "Started test environment with Redis version $$version."
587591

588592
# Stop the test environment
589593
stop-test-env:
590594
docker compose -f src/test/resources/env/docker-compose.yml down; \
591-
rm -rf /tmp/redis-env-work; \
595+
rm -rf "$(REDIS_ENV_WORK_DIR)"; \
592596
echo "Stopped test environment and performed cleanup."
593597

598+
test-on-docker: | start-test-env mvn-test stop-test-env
599+
594600
.PHONY: test

src/test/java/redis/clients/jedis/util/TlsUtil.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class TlsUtil {
2525
private static final String TRUST_STORE_TYPE = "JCEKS";
2626
private static final String CERTIFICATE_TYPE = "X.509";
2727

28-
private static final String TEST_WORK_FOLDER = System.getenv().getOrDefault("TEST_WORK_FOLDER", "./redis-env/");
28+
private static final String TEST_WORK_FOLDER = System.getenv().getOrDefault("TEST_WORK_FOLDER", "/tmp/redis-env-work");
2929
private static final String TEST_TRUSTSTORE = System.getenv().getOrDefault("TEST_TRUSTSTORE", "truststore.jceks");
3030
private static final String TEST_CA_CERT = System.getenv().getOrDefault("TEST_CA_CERT", "ca.crt");
3131
private static final String TEST_SERVER_CERT = System.getenv().getOrDefault("TEST_SERVER_CERT", "redis.crt");

src/test/resources/env/.env.v6.2.16

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
REDIS_VERSION=6.2.16
2-
CLIENT_LIBS_TEST_IMAGE=redislabs/client-libs-test
3-
REDIS_ENV_CONF_DIR=./
4-
REDIS_MODULES_DIR=/tmp
5-
REDIS_ENV_WORK_DIR=/tmp/redis-env-work
2+
REDIS_STACK_VERSION=rs-6.2.6-v17
63

74
#REMOVE UNSUPPORTED DIRECTIVE
85
ENABLE_MODULE_COMMAND_DIRECTIVE=

src/test/resources/env/.env.v7.2.6

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
REDIS_VERSION=7.2.6
2+
REDIS_STACK_VERSION=rs-7.2.0-v13

src/test/resources/env/.env.v7.4.1

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
REDIS_VERSION=7.4.1
2+
REDIS_STACK_VERSION=rs-7.4.0-v1

src/test/resources/env/docker-compose.yml

+11-4
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,17 @@ services:
145145
- ${REDIS_ENV_WORK_DIR}/cluster-stable/work:/redis/work:rw
146146

147147
jedis-stack:
148-
image: redis/redis-stack-server:edge
149-
container_name: jedis-stack
150-
ports:
151-
- "6479:6379"
148+
sysctls:
149+
- net.ipv6.conf.all.disable_ipv6=1
150+
image: "${CLIENT_LIBS_TEST_IMAGE}:${REDIS_STACK_VERSION:-${REDIS_VERSION}}"
151+
container_name: jedis-stack
152+
environment:
153+
- REDIS_CLUSTER=no
154+
- PORT=6479
155+
ports:
156+
- "6479:6479"
157+
volumes:
158+
- ${REDIS_ENV_WORK_DIR}/jedis-stack/work:/redis/work:rw
152159
#todo find a way to connect from mac os host to exposed unix socket in container
153160
# redis_uds:
154161
# image: redis:${REDIS_VERSION}

0 commit comments

Comments
 (0)