testlib: adjust wait-on-file timeout according to the global test timeout
Lets assume that if test timeout have been set to be twice as long, it means
local timeout should be twice as long too.
I am not aware of any case were extending timeout for file based synchronisation
was necessary, but the safety seems simple to implements.
Differential Revision: https://phab.mercurial-scm.org/D8316
#!/bin/bash
#
# wait up to TIMEOUT seconds until a WAIT_ON_FILE is created.
#
# In addition, this script can create CREATE_FILE once it is ready to wait.
if [ $# -lt 2 ] || [ $# -gt 3 ]; then
echo $#
echo "USAGE: $0 TIMEOUT WAIT_ON_FILE [CREATE_FILE]"
fi
timer="$1"
# if the test timeout have been extended, explicitly extend the provided timer
if [ "$HGTEST_TIMEOUT_DEFAULT" -lt "$HGTEST_TIMEOUT" ]; then
timer=$(( ("$timer" * "$HGTEST_TIMEOUT") / $HGTEST_TIMEOUT_DEFAULT ))
fi
wait_on="$2"
create=""
if [ $# -eq 3 ]; then
create="$3"
fi
if [ -n "$create" ];
then
touch "$create"
create=""
fi
while [ "$timer" -gt 0 ] && [ ! -f "$wait_on" ];
do
timer=$(( timer - 1))
sleep 0.01
done
if [ "$timer" -le 0 ]; then
echo "file not created after $1 seconds: $wait_on" >&2
exit 1
fi