Mercurial > hg
view tests/testlib/wait-on-file @ 47584:ee1fc8f970e6
run-tests: introduce a `HGTEST_REAL_HG` variable for test
It turns out that currently, `hg` and `which hg` can point to different things
because `hg` is an alias… This is annoying because script and pieces of test
are unknowingly using the wrong `hg`.
We will fix it in another changeset. However some test actually need to use a
real `hg` binary and not some `chg` or `rhg` equivalent. So we introduce a new
variable with the right value and we put it to us in the appropriate location.
Differential Revision: https://phab.mercurial-scm.org/D11049
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 09 Jul 2021 20:03:46 +0200 |
parents | 9d7d53771e5f |
children | a68b37524d50 |
line wrap: on
line source
#!/bin/sh # # 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" # 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=$(( ( $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.02 done if [ "$timer" -le 0 ]; then echo "file not created after $1 seconds: $wait_on" >&2 exit 1 fi