##// END OF EJS Templates
tests: stabilize `test-transaction-wc-rollback-race.t` on Windows...
tests: stabilize `test-transaction-wc-rollback-race.t` on Windows MSYS has a tendency to munge C:\Dir\SubDir\File into C:DirSubDirFile unless it is quoted, and that's what was happening here- there were a lot of these failures: file not created after 5 seconds: $TESTTMP/transaction-waiting I suspect quoting is only needed in the hook script that is generated (the catting of the log file pointed me in the right direction here), but I missed a spot and trial and error got me here. The quoting elsewhere doesn't harm anything and it was taking 7+ minutes to run this test when things were timing out, so I don't feel like reducing the quoting to the minimum required.

File last commit:

r50093:a68b3752 default
r52839:d7e61891 default
Show More
wait-on-file
39 lines | 948 B | text/plain | TextLexer
#!/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 ] && !([ -e "$wait_on" ] || [ -L "$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