test-chg: use a different log to avoid flakyness
The test was deleting the log file to start anew. However a trailing working
process might still be alive at this time, and recreate the very same log on
exit.
We see the trace of such worker in the expected content of server.log (see the
trace modified by this patch). This is flaky because we don't know *when* the
worker will write to the file and there is a race with the `hg init cached`
command.
A much simpler and reliable way to start anew without having such race is⦠to
write to a different log file. No reuse β no conflict, no conflict β no race, no
race β no flakiness.
--- a/tests/test-chg.t Fri Nov 18 13:51:40 2022 +0000
+++ b/tests/test-chg.t Sat Feb 18 01:21:51 2023 +0100
@@ -352,11 +352,10 @@
repository cache
----------------
- $ rm log/server.log*
$ cp $HGRCPATH.unconfigured $HGRCPATH
$ cat <<'EOF' >> $HGRCPATH
> [cmdserver]
- > log = $TESTTMP/log/server.log
+ > log = $TESTTMP/log/server-cached.log
> max-repo-cache = 1
> track-log = command, repocache
> EOF
@@ -420,9 +419,7 @@
check server log:
- $ cat log/server.log | filterlog
- YYYY/MM/DD HH:MM:SS (PID)> worker process exited (pid=...)
- YYYY/MM/DD HH:MM:SS (PID)> worker process exited (pid=...) (?)
+ $ cat log/server-cached.log | filterlog
YYYY/MM/DD HH:MM:SS (PID)> init cached
YYYY/MM/DD HH:MM:SS (PID)> id -R cached
YYYY/MM/DD HH:MM:SS (PID)> loaded repo into cache: $TESTTMP/cached (in ...s)