# HG changeset patch # User Joerg Sonnenberger # Date 2020-05-07 21:40:05 # Node ID ef65676bf2d4d6dec50542ce1b5de91f4a4d2089 # Parent 92054972f035f3de7126be9bbd32a3461f615bc7 tests: fix timer scaling in wait-on-file When using the default test timeouts, wait-on-file would not wait for $n seconds, but $n/100 seconds. This resulted in easy timeouts on even moderately busy fast machines. Fix the scaling to apply in all cases. Adjust the stepping slightly to be nicer to systems with the historic 100Hz time base to ensure that the scheduler actually switches to a different process and gives them time to work. Differential Revision: https://phab.mercurial-scm.org/D8505 diff --git a/tests/testlib/wait-on-file b/tests/testlib/wait-on-file --- a/tests/testlib/wait-on-file +++ b/tests/testlib/wait-on-file @@ -11,9 +11,12 @@ fi timer="$1" -# if the test timeout have been extended, explicitly extend the provided timer +# Scale the timeout to match the sleep steps below, i.e. 1/0.02. +timer=$(( 50 * $timer )) +# If the test timeout have been extended, also scale the timer relative +# to the normal timing. if [ "$HGTEST_TIMEOUT_DEFAULT" -lt "$HGTEST_TIMEOUT" ]; then - timer=$(( ( 100 * $timer * $HGTEST_TIMEOUT) / $HGTEST_TIMEOUT_DEFAULT )) + timer=$(( ( $timer * $HGTEST_TIMEOUT) / $HGTEST_TIMEOUT_DEFAULT )) fi wait_on="$2" @@ -28,7 +31,7 @@ if [ -n "$create" ]; then fi while [ "$timer" -gt 0 ] && [ ! -f "$wait_on" ]; do timer=$(( $timer - 1)) - sleep 0.01 + sleep 0.02 done if [ "$timer" -le 0 ]; then echo "file not created after $1 seconds: $wait_on" >&2