1# #-- redis_replica.test --# 2# source the master var file when it's there 3[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master 4# use .tpkg.var.test for in test variable passing 5[ -f .tpkg.var.test ] && source .tpkg.var.test 6 7PRE="../.." 8# do the test 9 10# Check number of keys in the db 11# $1: socket to connect to 12# $2: expected number of keys 13redis_cli_check_keys () { 14 echo "> redis-cli connecting to $1 to check number of keys; expecting $2" 15 keys=$(redis-cli --no-raw -s $1 keys "*" | grep -vF empty | wc -l) 16 if test $keys -ne $2 17 then 18 echo "Expected $2 keys, got $keys" 19 exit 1 20 fi 21 echo "OK" 22} 23 24# Query and check the expected result 25# $1: query 26# $2: expected answer 27expect_answer () { 28 echo "> dig @127.0.0.1 -p $UNBOUND_PORT $1" 29 dig @127.0.0.1 -p $UNBOUND_PORT $1 > tmp.answer 30 if ! grep -F $2 tmp.answer 31 then 32 echo "Expected $2 in the answer, got:" 33 cat tmp.answer 34 exit 1 35 fi 36 echo "OK" 37} 38 39# Start test 40 41# check Redis server has no keys 42redis_cli_check_keys $REDIS_SOCKET 0 43 44# check Redis replica server has no keys 45redis_cli_check_keys $REDIS_REPLICA_SOCKET 0 46 47# query and check answer 48expect_answer redis.com 1.1.1.1 49 50# check Redis server has 1 key 51redis_cli_check_keys $REDIS_SOCKET 1 52 53# check Redis replica server has no keys 54redis_cli_check_keys $REDIS_REPLICA_SOCKET 0 55 56# change auth zone and reload 57cp after.zone redis.zone 58echo "$PRE/unbound-control -c ub.conf reload" 59$PRE/unbound-control -c ub.conf reload 60if test $? -ne 0; then 61 echo "wrong exit value after success" 62 exit 1 63fi 64 65# query and check answer 66# we are writing to server but reading from replica; which is not actually 67# replicating so the new answer will come through while overwriting the record 68# in the server. 69expect_answer redis.com 2.2.2.2 70 71# check Redis server has 1 key 72redis_cli_check_keys $REDIS_SOCKET 1 73 74# check Redis replica server has no keys 75redis_cli_check_keys $REDIS_REPLICA_SOCKET 0 76 77echo "> OK" 78exit 0 79