Mercurial > hg
annotate tests/testlib/wait-on-file @ 46800:186c0f6fbc16
tests: ask any chg instance to terminate before looking at sqlite dbs
There are spurious errors in CI where the database is still locked, so
force the daemon to quit to get deterministic behavior. Since the kill
command itself is racy, also sleep 2s to give the server time to wake up
and exit.
Differential Revision: https://phab.mercurial-scm.org/D10244
author | Joerg Sonnenberger <joerg@bec.de> |
---|---|
date | Sat, 20 Mar 2021 00:37:57 +0100 |
parents | 9d7d53771e5f |
children | a68b37524d50 |
rev | line source |
---|---|
44780
f727939f3513
tests: use regular POSIX shell
Joerg Sonnenberger <joerg@bec.de>
parents:
44744
diff
changeset
|
1 #!/bin/sh |
44631
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
2 # |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
3 # wait up to TIMEOUT seconds until a WAIT_ON_FILE is created. |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
4 # |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
5 # In addition, this script can create CREATE_FILE once it is ready to wait. |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
6 |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
7 if [ $# -lt 2 ] || [ $# -gt 3 ]; then |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
8 echo $# |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
9 echo "USAGE: $0 TIMEOUT WAIT_ON_FILE [CREATE_FILE]" |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
10 fi |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
11 |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
12 timer="$1" |
44632
82543879b48e
testlib: adjust wait-on-file timeout according to the global test timeout
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44631
diff
changeset
|
13 |
44818
9d7d53771e5f
tests: fix timer scaling in wait-on-file
Joerg Sonnenberger <joerg@bec.de>
parents:
44780
diff
changeset
|
14 # Scale the timeout to match the sleep steps below, i.e. 1/0.02. |
9d7d53771e5f
tests: fix timer scaling in wait-on-file
Joerg Sonnenberger <joerg@bec.de>
parents:
44780
diff
changeset
|
15 timer=$(( 50 * $timer )) |
9d7d53771e5f
tests: fix timer scaling in wait-on-file
Joerg Sonnenberger <joerg@bec.de>
parents:
44780
diff
changeset
|
16 # If the test timeout have been extended, also scale the timer relative |
9d7d53771e5f
tests: fix timer scaling in wait-on-file
Joerg Sonnenberger <joerg@bec.de>
parents:
44780
diff
changeset
|
17 # to the normal timing. |
44632
82543879b48e
testlib: adjust wait-on-file timeout according to the global test timeout
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44631
diff
changeset
|
18 if [ "$HGTEST_TIMEOUT_DEFAULT" -lt "$HGTEST_TIMEOUT" ]; then |
44818
9d7d53771e5f
tests: fix timer scaling in wait-on-file
Joerg Sonnenberger <joerg@bec.de>
parents:
44780
diff
changeset
|
19 timer=$(( ( $timer * $HGTEST_TIMEOUT) / $HGTEST_TIMEOUT_DEFAULT )) |
44632
82543879b48e
testlib: adjust wait-on-file timeout according to the global test timeout
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44631
diff
changeset
|
20 fi |
82543879b48e
testlib: adjust wait-on-file timeout according to the global test timeout
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44631
diff
changeset
|
21 |
44631
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
22 wait_on="$2" |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
23 create="" |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
24 if [ $# -eq 3 ]; then |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
25 create="$3" |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
26 fi |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
27 |
44780
f727939f3513
tests: use regular POSIX shell
Joerg Sonnenberger <joerg@bec.de>
parents:
44744
diff
changeset
|
28 if [ -n "$create" ]; then |
44631
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
29 touch "$create" |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
30 create="" |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
31 fi |
44780
f727939f3513
tests: use regular POSIX shell
Joerg Sonnenberger <joerg@bec.de>
parents:
44744
diff
changeset
|
32 while [ "$timer" -gt 0 ] && [ ! -f "$wait_on" ]; do |
44727
694d40416d62
wait-on-file: use proper variable in math
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44726
diff
changeset
|
33 timer=$(( $timer - 1)) |
44818
9d7d53771e5f
tests: fix timer scaling in wait-on-file
Joerg Sonnenberger <joerg@bec.de>
parents:
44780
diff
changeset
|
34 sleep 0.02 |
44631
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
35 done |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
36 if [ "$timer" -le 0 ]; then |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
37 echo "file not created after $1 seconds: $wait_on" >&2 |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
38 exit 1 |
1ed6293fc31b
testlib: add a small scrip to help process to synchronise using file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
39 fi |