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.
$ cat > unix2mac.py <<EOF
> import sys
>
> for path in sys.argv[1:]:
> data = open(path, 'rb').read()
> data = data.replace(b'\n', b'\r')
> open(path, 'wb').write(data)
> EOF
$ hg init
$ echo '[hooks]' >> .hg/hgrc
$ echo 'pretxncommit.cr = python:hgext.win32text.forbidcr' >> .hg/hgrc
$ echo 'pretxnchangegroup.cr = python:hgext.win32text.forbidcr' >> .hg/hgrc
$ cat .hg/hgrc
[hooks]
pretxncommit.cr = python:hgext.win32text.forbidcr
pretxnchangegroup.cr = python:hgext.win32text.forbidcr
$ echo hello > f
$ hg add f
$ hg ci -m 1
$ "$PYTHON" unix2mac.py f
$ hg ci -m 2
attempt to commit or push text file(s) using CR line endings
in dea860dc51ec: f
transaction abort!
rollback completed
abort: pretxncommit.cr hook failed
[40]
$ hg cat f | f --hexdump
0000: 68 65 6c 6c 6f 0a |hello.|
$ f --hexdump f
f:
0000: 68 65 6c 6c 6f 0d |hello.|