pgpool2.git / summary / log / commit / refs

commit    bb92667852a975d49232da18960b3643633d0d9b
Author:   Tatsuo Ishii <ishii@postgresql.org>
Date:     Mon May 08 08:14:51 2017 +0000

    Add node 0 failover test.
    
    Previously only node 1 failover test is performed in 003.failover.


src/test/regression/libs.sh | 21 +++++++++++++++++++++ .../tests/003.failover/create_expected_node0.sql | 21 +++++++++++++++++++++ src/test/regression/tests/003.failover/test.sh | 20 ++++++++++++++++++-- 3 files changed, 60 insertions(+), 2 deletions(-) diff --git a/src/test/regression/libs.sh b/src/test/regression/libs.sh index 646927892..f7aeaad95 100644 --- a/src/test/regression/libs.sh +++ b/src/test/regression/libs.sh @@ -14,3 +14,24 @@ function wait_for_pgpool_startup { sleep 1 done } + +#------------------------------------------- +# wait for primary/master failover done +#------------------------------------------- +function wait_for_failover_done { + timeout=20 + + while [ $timeout -gt 0 ] + do + $PGBIN/psql -p $PGPOOL_PORT -c "show pool_nodes" test >/dev/null 2>&1 + if [ $? = 0 ];then + $PGBIN/psql -p $PGPOOL_PORT -c "show pool_nodes" test |egrep -i "primary|master">/dev/null 2>&1 + if [ $? = 0 ];then + break; + fi + fi + timeout=`expr $timeout - 1` + echo "timeout: $timeout" + sleep 1 + done +} diff --git a/src/test/regression/tests/003.failover/create_expected_node0.sql b/src/test/regression/tests/003.failover/create_expected_node0.sql new file mode 100644 index 000000000..abdd3bbeb --- /dev/null +++ b/src/test/regression/tests/003.failover/create_expected_node0.sql @@ -0,0 +1,21 @@ +CREATE TEMP TABLE tmp ( + node_id text, + hostname text, + port text, + status text, + lb_weight text, + role text, + select_cnt text, + load_balance_node text, + replication_delay text, + mode text); + +INSERT INTO tmp VALUES +('0',:dir,'11002','down','0.500000','standby','0','false','0','s'), +('1',:dir,'11003','up','0.500000','primary','0','false','0','s'), +('0',:dir,'11002','down','0.500000','slave','0','false','0','r'), +('1',:dir,'11003','up','0.500000','master','0','false','0','r'); + +SELECT node_id,hostname,port,status,lb_weight,role,select_cnt,load_balance_node,replication_delay +FROM tmp +WHERE mode = :mode diff --git a/src/test/regression/tests/003.failover/test.sh b/src/test/regression/tests/003.failover/test.sh index 00136e89c..4bbd3de42 100755 --- a/src/test/regression/tests/003.failover/test.sh +++ b/src/test/regression/tests/003.failover/test.sh @@ -24,7 +24,7 @@ do $PSQL -c "show pool_nodes" test - # trrigger failover + # trigger failover on node 1 $PG_CTL -D data1 -m f stop wait_for_pgpool_startup $PSQL -c "show pool_nodes" test |sed -e 's/true /false/'> result @@ -39,8 +39,24 @@ do ./shutdownall - cd .. + ./startall + wait_for_pgpool_startup + # trigger failover on node 0 + $PG_CTL -D data0 -m f stop + wait_for_failover_done + $PSQL -c "show pool_nodes" test |sed -e 's/true /false/'> result + # check the output of "show pool_nodes". + LANG=C $PSQL -f ../create_expected_node0.sql -v mode="'$mode'" -v dir="'$PGSOCKET_DIR'" test | tail -n 6 > expected + cmp result expected > /dev/null 2>&1 + if [ $? != 0 ];then + ./shutdownall + exit 1 + fi + + ./shutdownall + + cd .. done exit 0 [parent: 8ca1e409868e]