@@ -3,6 +3,7 @@ SHELL := /bin/bash # Cheat by using bash :)
33OPENRESTY_PREFIX = /usr/local/openresty
44
55TEST_FILE ?= t
6+ TMP_DIR ?= /tmp
67SENTINEL_TEST_FILE ?= $(TEST_FILE ) /sentinel
78
89REDIS_CMD = redis-server
@@ -11,41 +12,51 @@ SENTINEL_CMD = $(REDIS_CMD) --sentinel
1112REDIS_SOCK = /redis.sock
1213REDIS_PID = /redis.pid
1314REDIS_LOG = /redis.log
14- REDIS_PREFIX = /tmp /redis-
15+ REDIS_PREFIX = $( TMP_DIR ) /redis-
1516
1617# Overrideable redis test variables
17- TEST_REDIS_PORTS ?= 6379 6380 6378
18- TEST_REDIS_DATABASE ?= 1
18+ TEST_REDIS_PORT ?= 6380
19+ TEST_REDIS_PORT_SL1 ?= 6381
20+ TEST_REDIS_PORT_SL2 ?= 6382
21+ TEST_REDIS_PORTS ?= $(TEST_REDIS_PORT ) $(TEST_REDIS_PORT_SL1 ) $(TEST_REDIS_PORT_SL2 )
22+ TEST_REDIS_DATABASE ?= 1
23+ TEST_REDIS_SOCKET ?= $(REDIS_PREFIX )$(TEST_REDIS_PORT )$(REDIS_SOCK )
1924
20- REDIS_FIRST_PORT := $(firstword $(TEST_REDIS_PORTS ) )
21- REDIS_SLAVE_ARG := --slaveof 127.0.0.1 $(REDIS_FIRST_PORT )
22- REDIS_CLI := redis-cli -p $(REDIS_FIRST_PORT ) -n $(TEST_REDIS_DATABASE )
23-
24- # Override socket for running make test on its own
25- # (make test TEST_REDIS_SOCKET=/path/to/sock.sock)
26- TEST_REDIS_SOCKET ?= $(REDIS_PREFIX )$(REDIS_FIRST_PORT )$(REDIS_SOCK )
25+ REDIS_SLAVE_ARG := --slaveof 127.0.0.1 $(TEST_REDIS_PORT )
26+ REDIS_CLI := redis-cli -p $(TEST_REDIS_PORT ) -n $(TEST_REDIS_DATABASE )
2727
2828# Overrideable redis + sentinel test variables
29- TEST_SENTINEL_PORTS ?= 6381 6382 6383
29+ TEST_SENTINEL_PORT1 ?= 6390
30+ TEST_SENTINEL_PORT2 ?= 6391
31+ TEST_SENTINEL_PORT3 ?= 6392
32+ TEST_SENTINEL_PORTS ?= $(TEST_SENTINEL_PORT1 ) $(TEST_SENTINEL_PORT2 ) $(TEST_SENTINEL_PORT3 )
3033TEST_SENTINEL_MASTER_NAME ?= mymaster
3134TEST_SENTINEL_PROMOTION_TIME ?= 20
3235
3336# Command line arguments for redis tests
3437TEST_REDIS_VARS = PATH=$(OPENRESTY_PREFIX ) /nginx/sbin:$(PATH ) \
35- TEST_NGINX_REDIS_SOCKET=unix://$(TEST_REDIS_SOCKET ) \
36- TEST_REDIS_DATABASE=$(TEST_REDIS_DATABASE ) \
38+ TEST_NGINX_REDIS_PORT=$(TEST_REDIS_PORT ) \
39+ TEST_NGINX_REDIS_PORT_SL1=$(TEST_REDIS_PORT_SL1 ) \
40+ TEST_NGINX_REDIS_PORT_SL2=$(TEST_REDIS_PORT_SL2 ) \
41+ TEST_NGINX_REDIS_SOCKET=unix:$(TEST_REDIS_SOCKET ) \
42+ TEST_NGINX_REDIS_DATABASE=$(TEST_REDIS_DATABASE ) \
3743TEST_NGINX_NO_SHUFFLE=1
3844
3945# Command line arguments for sentinel tests
4046TEST_SENTINEL_VARS = PATH=$(OPENRESTY_PREFIX ) /nginx/sbin:$(PATH ) \
41- TEST_SENTINEL_PORT=$(firstword $(TEST_SENTINEL_PORTS ) ) \
42- TEST_SENTINEL_MASTER_NAME=$(TEST_SENTINEL_MASTER_NAME ) \
43- TEST_REDIS_DATABASE=$(TEST_REDIS_DATABASE ) \
47+ TEST_NGINX_REDIS_PORT=$(TEST_NGINX_REDIS_PORT ) \
48+ TEST_NGINX_REDIS_PORT_SL1=$(TEST_NGINX_REDIS_PORT_SL1 ) \
49+ TEST_NGINX_REDIS_PORT_SL2=$(TEST_NGINX_REDIS_PORT_SL2 ) \
50+ TEST_NGINX_SENTINEL_PORT1=$(TEST_NGINX_SENTINEL_PORT1 ) \
51+ TEST_NGINX_SENTINEL_PORT2=$(TEST_NGINX_SENTINEL_PORT2 ) \
52+ TEST_NGINX_SENTINEL_PORT3=$(TEST_NGINX_SENTINEL_PORT3 ) \
53+ TEST_NGINX_SENTINEL_MASTER_NAME=$(TEST_NGINX_SENTINEL_MASTER_NAME ) \
54+ TEST_NGINX_REDIS_DATABASE=$(TEST_NGINX_REDIS_DATABASE ) \
4455TEST_NGINX_NO_SHUFFLE=1
4556
4657# Sentinel configuration can only be set by a config file
4758define TEST_SENTINEL_CONFIG
48- sentinel monitor $(TEST_SENTINEL_MASTER_NAME ) 127.0.0.1 $(REDIS_FIRST_PORT ) 2
59+ sentinel monitor $(TEST_SENTINEL_MASTER_NAME ) 127.0.0.1 $(TEST_REDIS_PORT ) 2
4960sentinel down-after-milliseconds $(TEST_SENTINEL_MASTER_NAME ) 2000
5061sentinel failover-timeout $(TEST_SENTINEL_MASTER_NAME ) 10000
5162sentinel parallel-syncs $(TEST_SENTINEL_MASTER_NAME ) 5
@@ -83,8 +94,10 @@ sleep:
8394 sleep 3
8495
8596start_redis_instances : check_ports create_sentinel_config
97+ $(REDIS_CMD ) --version
98+
8699 @$(foreach port,$(TEST_REDIS_PORTS), \
87- [[ " $( port) " != " $( REDIS_FIRST_PORT ) " ]] && \
100+ [[ "$(port)" != "$(TEST_REDIS_PORT )" ]] && \
88101 SLAVE="$(REDIS_SLAVE_ARG)" || \
89102 SLAVE="" && \
90103 $(MAKE) start_redis_instance args="$$SLAVE" port=$(port) \
@@ -97,7 +110,6 @@ start_redis_instances: check_ports create_sentinel_config
97110 prefix=$(REDIS_PREFIX)$(port) && \
98111 ) true
99112
100-
101113stop_redis_instances : delete_sentinel_config
102114 -@$(foreach port,$(TEST_REDIS_PORTS ) $(TEST_SENTINEL_PORTS ) , \
103115 $(MAKE ) stop_redis_instance cleanup_redis_instance port=$(port ) \
@@ -108,7 +120,7 @@ stop_redis_instances: delete_sentinel_config
108120start_redis_instance :
109121 -@echo " Starting redis on port $( port) with args: \" $( args) \" "
110122 -@mkdir -p $(prefix )
111- @ $(REDIS_CMD ) $(args ) \
123+ $(REDIS_CMD ) $(args ) \
112124 --pidfile $(prefix )$(REDIS_PID ) \
113125 --bind 127.0.0.1 --port $(port ) \
114126 --unixsocket $(prefix )$(REDIS_SOCK ) \
0 commit comments