[sheepdog] [PATCH] tests/functional: update common.rc for destructive update of pgrep
Hitoshi Mitake
mitake.hitoshi at lab.ntt.co.jp
Tue Jan 13 01:51:52 CET 2015
At Mon, 12 Jan 2015 23:05:35 +0900,
Hitoshi Mitake wrote:
>
> The usage of pgrep seems to be changed destructively between version
> 3.3.3 to 3.3.9.
>
> Differences I could find:
> - an option for listing full command line is -a on 3.3.9 (it was -l
> on 3.3.3)
> - return value of pgrep process doesn't represent a number of matched
> processes on 3.3.9 (wc -l is required for counting)
>
> These changes broke tests of tests/functional. This patch updates
> common.rc for newer pgrep and revive them.
>
> Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
> ---
> tests/functional/common.rc | 37 ++++++++++++++++++++++++-------------
> 1 file changed, 24 insertions(+), 13 deletions(-)
Applied this one.
Thanks,
Hitoshi
>
> diff --git a/tests/functional/common.rc b/tests/functional/common.rc
> index aa2b825..939a299 100644
> --- a/tests/functional/common.rc
> +++ b/tests/functional/common.rc
> @@ -164,7 +164,7 @@ _cleanup()
>
> _count_sheep_processes()
> {
> - pgrep -f "$SHEEP_PROG $STORE/" -l | awk '{ $1=""; print }' | sort | uniq | wc -l
> + pgrep -f "$SHEEP_PROG $STORE/" -a | awk '{ $1=""; print }' | sort | uniq | wc -l
> }
>
> # Wait for the specified sheep to be stopped. If no argument is
> @@ -174,12 +174,13 @@ _wait_for_sheep_stop()
> local cnt
> for cnt in `seq 60`; do # wait at most 60 seconds
> # check sheep process
> + local SHEEPS=0
> if [ "$1" == "" ]; then
> - pgrep -f "$SHEEP_PROG $WD" > /dev/null
> + SHEEPS=`pgrep -f "$SHEEP_PROG $WD" | wc -l`
> else
> - pgrep -f "$SHEEP_PROG $STORE/$1 " > /dev/null
> + SHEEPS=`pgrep -f "$SHEEP_PROG $STORE/$1 " | wc -l`
> fi
> - if [ $? == 0 ]; then
> + if [ $SHEEPS != 0 ]; then
> sleep 1
> continue
> fi
> @@ -259,8 +260,8 @@ _valgrind_sheep()
>
> # wait for sheep to start up
> while true; do
> - pgrep -f "$SHEEP_PROG $1" > /dev/null
> - if [ $? != 0 ]; then
> + local SHEEPS=`pgrep -f "$SHEEP_PROG $1" | wc -l`
> + if [ $SHEEPS == 0 ]; then
> # failed to start sheep $1
> break
> fi
> @@ -288,11 +289,11 @@ _start_sheep()
> local running=true
> local cnt
> for cnt in `seq 1 10`; do # wait at most 10 seconds
> - pgrep -f "$SHEEP_PROG $STORE/$1 " > /dev/null
> - if [ $? != 0 ]; then
> + local SHEEPS=`pgrep -f "$SHEEP_PROG $STORE/$1 " | wc -l`
> + if [ $SHEEPS == 0 ]; then
> running=false
> break
> - fi
> + fi
> sleep 1
> done
>
> @@ -316,8 +317,13 @@ _kill_all_dogs()
> {
> pkill -f "$DOG_PROG (cluster|vdi|node|debug)"
>
> - while [ $? == 0 ]; do
> - pgrep -f "$DOG_PROG (cluster|vdi|node|debug)" > /dev/null
> + if [ $? == 1 ]; then
> + return # no dogs
> + fi
> +
> + local DOGS=1
> + while [ $DOGS != "0" ]; do
> + DOGS=`pgrep -f "$DOG_PROG (cluster|vdi|node|debug)" | wc -l`
> done
> }
>
> @@ -343,8 +349,13 @@ _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
> + if [ $? == 1 ]; then
> + return # no dogs
> + fi
> +
> + local DOGS=1
> + while [ $DOGS != 0 ]; do
> + DOGS=`pgrep -f "$DOG_PROG (cluster|vdi|node|debug)" | wc -l`
> done
> }
>
> --
> 1.9.1
>
More information about the sheepdog
mailing list