tests: fix hooks in `test-transaction-rollback-on-revlog-split.t` for Windows
A few problems with external hooks here:
1) `cmd.exe` is blissfully unaware of the meaning of single quotes, and passes
them along as part of the revision arg
2) `cmd.exe` doesn't know how to run the python script `f` with the shebang
line, so it needs to be invoked with the intepreter explicitly. Then for
some reason it was trying to open `$TESTTMP\troffset-computation-hooks\f`,
so make it an absolute path.
3) Likewise, the shell script `wait-on-file` cannot be invoked directly by
`cmd.exe`.
4) Windows python doesn't understand whatever `$TESTTMP` unrolls to (probably
it has the double backslashes), and silently failed to write the lock file.
I'm assuming that `pretxnclose.03-abort` is also bad (there's no `false` in
`cmd.exe`), but it's not currently causing problems.
Also note that the paths in this are very long, and typically exceed the
`MAX_PATH` limit in Windows. It can be run with `run-tests.py --tmpdir /c/t`.
--- a/tests/test-transaction-rollback-on-revlog-split.t Sat Oct 12 16:35:03 2024 -0400
+++ b/tests/test-transaction-rollback-on-revlog-split.t Sat Oct 12 16:55:30 2024 -0400
@@ -58,11 +58,11 @@
> def _wait_post_load(orig, self, *args, **kwargs):
> wait = b'data/file' in self.radix
> if wait:
- > testing.wait_file(b"$TESTTMP/writer-revlog-split")
+ > testing.wait_file(b"$TESTTMP_FORWARD_SLASH/writer-revlog-split")
> r = orig(self, *args, **kwargs)
> if wait:
- > testing.write_file(b"$TESTTMP/reader-index-read")
- > testing.wait_file(b"$TESTTMP/writer-revlog-unsplit")
+ > testing.write_file(b"$TESTTMP_FORWARD_SLASH/reader-index-read")
+ > testing.wait_file(b"$TESTTMP_FORWARD_SLASH/writer-revlog-unsplit")
> return r
>
> def extsetup(ui):
@@ -441,7 +441,7 @@
$ cd troffset-computation-race
$ cat > .hg/hgrc <<EOF
> [hooks]
- > pretxnchangegroup=$RUNTESTDIR/testlib/wait-on-file 5 $TESTTMP/reader-index-read $TESTTMP/writer-revlog-split
+ > pretxnchangegroup=sh "$RUNTESTDIR/testlib/wait-on-file" 5 $TESTTMP/reader-index-read $TESTTMP/writer-revlog-split
> pretxnclose = false
> EOF
@@ -485,8 +485,8 @@
$ cd troffset-computation-hooks
$ cat > .hg/hgrc <<EOF
> [hooks]
- > pretxnclose.01-echo = hg cat -r 'max(all())' file | f --size
- > pretxnclose.02-echo = $RUNTESTDIR/testlib/wait-on-file 5 $TESTTMP/hook-done $TESTTMP/hook-tr-ready
+ > pretxnclose.01-echo = hg cat -r "max(all())" file | "$PYTHON" "$RUNTESTDIR/f" --size
+ > pretxnclose.02-echo = sh "$RUNTESTDIR/testlib/wait-on-file" 5 $TESTTMP/hook-done $TESTTMP/hook-tr-ready
> pretxnclose.03-abort = false
> EOF