Since the bug, sheep sometimes cannot be killed, is fixed by the commit f473561, functional tests should use 'pkill' instead of 'pkill -9' by default. Otherwise, some tests using zookeeper as their cluster manager will be failure because zookeeper cannot receive the leaving message at the first time.
For the purpose of killing program forcibly, _kill_xxx_force methods are added. They kill programs with SIGKILL (-9). Signed-off-by: Ruoyu <lian...@ucweb.com> --- tests/functional/common.rc | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/tests/functional/common.rc b/tests/functional/common.rc index 20365ce..aa2b825 100644 --- a/tests/functional/common.rc +++ b/tests/functional/common.rc @@ -314,7 +314,7 @@ _start_sheep() _kill_all_dogs() { - pkill -9 -f "$DOG_PROG (cluster|vdi|node|debug)" + pkill -f "$DOG_PROG (cluster|vdi|node|debug)" while [ $? == 0 ]; do pgrep -f "$DOG_PROG (cluster|vdi|node|debug)" > /dev/null @@ -323,13 +323,40 @@ _kill_all_dogs() _kill_all_sheeps() { - pkill -9 -f "$SHEEP_PROG $WD" + pkill -f "$SHEEP_PROG $WD" _wait_for_sheep_stop } _kill_sheep() { + pkill -f "$SHEEP_PROG $STORE/$1 " + + if [ $? != 0 ]; then + _die "cannot kill sheep $1" + fi + + _wait_for_sheep_stop $1 +} + +_kill_all_dogs_force() +{ + pkill -9 -f "$DOG_PROG (cluster|vdi|node|debug)" + + while [ $? == 0 ]; do + pgrep -f "$DOG_PROG (cluster|vdi|node|debug)" > /dev/null + done +} + +_kill_all_sheeps_force() +{ + pkill -9 -f "$SHEEP_PROG $WD" + + _wait_for_sheep_stop +} + +_kill_sheep_force() +{ pkill -9 -f "$SHEEP_PROG $STORE/$1 " if [ $? != 0 ]; then -- 1.8.3.2 -- sheepdog mailing list sheepdog@lists.wpkg.org http://lists.wpkg.org/mailman/listinfo/sheepdog