1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

ctdb-tests: Allow wait_until() to be used in unit tests

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13097

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
This commit is contained in:
Martin Schwenke 2017-10-25 12:04:49 +11:00 committed by Amitay Isaacs
parent 16389bed07
commit d69899238b
2 changed files with 44 additions and 44 deletions

View File

@ -47,3 +47,47 @@ esac
if [ -d "$_test_bin_dir" ] ; then
PATH="${_test_bin_dir}:$PATH"
fi
# Wait until either timeout expires or command succeeds. The command
# will be tried once per second, unless timeout has format T/I, where
# I is the recheck interval.
wait_until ()
{
local timeout="$1" ; shift # "$@" is the command...
local interval=1
case "$timeout" in
*/*)
interval="${timeout#*/}"
timeout="${timeout%/*}"
esac
local negate=false
if [ "$1" = "!" ] ; then
negate=true
shift
fi
echo -n "<${timeout}|"
local t=$timeout
while [ $t -gt 0 ] ; do
local rc=0
"$@" || rc=$?
if { ! $negate && [ $rc -eq 0 ] ; } || \
{ $negate && [ $rc -ne 0 ] ; } ; then
echo "|$(($timeout - $t))|"
echo "OK"
return 0
fi
local i
for i in $(seq 1 $interval) ; do
echo -n .
done
t=$(($t - $interval))
sleep $interval
done
echo "*TIMEOUT*"
return 1
}

View File

@ -259,50 +259,6 @@ delete_ip_from_all_nodes ()
#######################################
# Wait until either timeout expires or command succeeds. The command
# will be tried once per second, unless timeout has format T/I, where
# I is the recheck interval.
wait_until ()
{
local timeout="$1" ; shift # "$@" is the command...
local interval=1
case "$timeout" in
*/*)
interval="${timeout#*/}"
timeout="${timeout%/*}"
esac
local negate=false
if [ "$1" = "!" ] ; then
negate=true
shift
fi
echo -n "<${timeout}|"
local t=$timeout
while [ $t -gt 0 ] ; do
local rc=0
"$@" || rc=$?
if { ! $negate && [ $rc -eq 0 ] ; } || \
{ $negate && [ $rc -ne 0 ] ; } ; then
echo "|$(($timeout - $t))|"
echo "OK"
return 0
fi
local i
for i in $(seq 1 $interval) ; do
echo -n .
done
t=$(($t - $interval))
sleep $interval
done
echo "*TIMEOUT*"
return 1
}
sleep_for ()
{
echo -n "=${1}|"