From 4d7278dbd9cf5f9a7d6060eb96e1ba5af6b3d505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= Date: Thu, 19 Jul 2018 19:44:34 +0200 Subject: [PATCH 2/3] maint: test: polish live_test.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - from issues found with ShellCheck, fix those marked as important - suppress some ShellCheck issues, mostly related to the fact that some ticket-related variables are established dynamically, also drop a never-used local variable (see commits 74a3f5c + 4136682) and another global one that was used but consequently ditched (see commits 08f56bd + d952b27) - fix s/boots not uptodate/booths not up-to-date/ spelling - fix whitespace issues Signed-off-by: Jan Pokorný --- test/live_test.sh | 60 ++++++++++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/test/live_test.sh b/test/live_test.sh index f8644a2..c131f8c 100755 --- a/test/live_test.sh +++ b/test/live_test.sh @@ -41,7 +41,6 @@ EOF [ $# -eq 0 ] && usage 0 cnf=$1 -BOOTH_DIR="/etc/booth" run_cnf="/etc/booth/booth.conf" shift 1 @@ -62,9 +61,9 @@ get_internal_site() { logmsg() { if [ "$WE_SERVER" -o "$_JUST_NETEM" ]; then - logger -t "BOOTHTEST" -p $HA_LOGFACILITY.info -- $@ + logger -t "BOOTHTEST" -p $HA_LOGFACILITY.info -- "$@" else - ssh $SSH_OPTS `get_site 1` logger -t "BOOTHTEST" -p $HA_LOGFACILITY.info -- $@ + ssh $SSH_OPTS `get_site 1` logger -t "BOOTHTEST" -p $HA_LOGFACILITY.info -- "$@" fi } @@ -141,20 +140,20 @@ local_netem_env() { } is_function() { - test z"`command -v $1`" = z"$1" + test z"`command -v $1`" = z"$1" } runcmd() { local h=$1 rc shift 1 - echo "$h: running '$@'" | logmsg + echo "$h: running '$*'" | logmsg if ip a l | fgrep -wq $h; then - eval $@ + eval "$@" else - ssh $SSH_OPTS $h $@ + ssh $SSH_OPTS $h "$@" fi rc=$? if [ $rc -ne 0 ]; then - echo "$h: '$@' failed (exit code $rc)" | logmsg + echo "$h: '$*' failed (exit code $rc)" | logmsg fi return $rc } @@ -306,7 +305,7 @@ dump_conf() { forall() { local h rc=0 for h in $sites $arbitrators; do - runcmd $h $@ + runcmd $h "$@" rc=$((rc|$?)) done return $rc @@ -314,7 +313,7 @@ forall() { forall_withname() { local h rc=0 output for h in $sites $arbitrators; do - output=`runcmd $h $@` + output=`runcmd $h "$@"` rc=$((rc|$?)) echo $h: $output done @@ -323,7 +322,7 @@ forall_withname() { forall_sites() { local h rc=0 for h in $sites; do - runcmd $h $@ + runcmd $h "$@" rc=$((rc|$?)) done return $rc @@ -343,7 +342,7 @@ forall_fun2() { f=$1 shift 1 for h in $sites $arbitrators; do - $f $@ | ssh $SSH_OPTS $h + $f "$@" | ssh $SSH_OPTS $h rc=$((rc|$?)) [ $rc -ne 0 ] && break done @@ -353,13 +352,13 @@ run_site() { local n=$1 h shift 1 h=`echo $sites | awk '{print $'$n'}'` - runcmd $h $@ + runcmd $h "$@" } run_arbitrator() { local n=$1 h shift 1 h=`echo $arbitrators | awk '{print $'$n'}'` - runcmd $h $@ + runcmd $h "$@" } # need to get logs from _all_ clusters' nodes @@ -450,6 +449,8 @@ n && (/^$/ || /^ticket.*/) {exit} ' $1 } wait_exp() { + # shellcheck disable=SC2154 + # (T_expire: defined with get_tkt_settings) sleep $T_expire } wait_renewal() { @@ -593,7 +594,7 @@ booth_leader_consistency_2() { # b) some booths not uptodate (have no leader for the ticket) # c) ticket expiry times differ check_booth_consistency() { - local tlist tlist_validate rc rc_lead maxdiff + local tlist rc rc_lead maxdiff tlist=`forall_withname booth list 2>/dev/null | grep $tkt` # Check time consistency @@ -620,7 +621,7 @@ check_booth_consistency() { `if [ $rc -ge 4 ]; then echo "booth list consistency failed (more than one leader!):" elif [ $rc -ge 2 ]; then - echo "booth list consistency failed (some boots not uptodate):" + echo "booth list consistency failed (some booths not up-to-date):" else echo "booth list consistency failed (max valid time diff: $maxdiff):" fi` @@ -677,11 +678,10 @@ run_report() { runtest() { local start_ts end_ts local rc booth_status dep_rsc_status - local start_time end_time local usrmsg rc=0 TEST=$1 - start_time=`date` + start_ts=`date` # to have the expanded form in the logfile start_ts=`date +%s` echo -n "Testing: $1 (ticket: $tkt)... " can_run_test $1 || return 0 @@ -719,7 +719,7 @@ runtest() { usrmsg="test FAIL: $rc" ;; esac - end_time=`date` + end_ts=`date` # to have the expanded form in the logfile end_ts=`date +%s` echo "finished booth test $1 ($tkt): $usrmsg" | logmsg echo "==================================================" | logmsg @@ -791,6 +791,8 @@ setup_longgrant2() { } test_longgrant2() { local i + # shellcheck disable=SC2034 + # (variable exists merely out of necessity) for i in `seq 10`; do wait_exp done @@ -1033,14 +1035,14 @@ setup_split_leader() { return 0 } test_split_leader() { - run_site 1 $iprules stop $port >/dev/null + run_site 1 $iprules stop $port >/dev/null wait_exp wait_timeout wait_timeout wait_timeout wait_timeout check_cib any || return 1 - run_site 1 $iprules start $port >/dev/null + run_site 1 $iprules start $port >/dev/null wait_timeout wait_timeout wait_timeout @@ -1049,7 +1051,7 @@ check_split_leader() { check_consistency any } recover_split_leader() { - run_site 1 $iprules start $port >/dev/null + run_site 1 $iprules start $port >/dev/null } ## TEST: split_follower ## @@ -1059,10 +1061,10 @@ setup_split_follower() { grant_ticket_cib 1 } test_split_follower() { - run_site 2 $iprules stop $port >/dev/null + run_site 2 $iprules stop $port >/dev/null wait_exp wait_timeout - run_site 2 $iprules start $port >/dev/null + run_site 2 $iprules start $port >/dev/null wait_timeout } check_split_follower() { @@ -1076,9 +1078,9 @@ setup_split_edge() { grant_ticket_cib 1 } test_split_edge() { - run_site 1 $iprules stop $port >/dev/null + run_site 1 $iprules stop $port >/dev/null wait_exp - run_site 1 $iprules start $port >/dev/null + run_site 1 $iprules start $port >/dev/null wait_timeout wait_timeout } @@ -1215,13 +1217,11 @@ internal_arbitrators=`get_value arbitrator < $cnf` all_nodes=`get_all_nodes` port=`get_value port < $cnf` : ${port:=9929} -site_cnt=`echo $internal_sites | wc -w` -arbitrator_cnt=`echo $internal_arbitrators | wc -w` if [ "$1" = "__netem__" ]; then shift 1 _JUST_NETEM=1 - local_netem_env $@ + local_netem_env "$@" exit fi @@ -1314,6 +1314,8 @@ do eval `get_tkt_settings booth_${i}.conf` + # shellcheck disable=SC2154 + # (T_timeout: defined with get_tkt_settings) MIN_TIMEOUT=`awk -v tm=$T_timeout 'BEGIN{ if (tm >= 2) print tm; else print 2*tm; -- 2.18.0.rc2