Matt Harbison <matt_harbison@yahoo.com> [Fri, 04 Oct 2024 01:40:35 -0400] rev 51952
run-tests: bump the default timeout on Windows to 4x the normal value
There are a ridiculous number of tests that timeout on Windows with the 360 sec
default (~60). And because of the bug where timed out tests still run to
completion before the results are thrown away[1], the timeout does nothing but
waste time, so there's no reason to try to find a lower value that still works.
For reference on my system:
# Ran 909 tests, 116 skipped, 119 failed.
python hash seed:
2052473208
real 151m44.322s
user 0m0.077s
sys 0m0.046s
[1] I thought that I wrote a bug for this, but search isn't finding it.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 04 Oct 2024 01:29:45 -0400] rev 51951
run-tests: bump the minimum python to 3.8
Presumably this was an oversight when hg was updated to 3.8.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 04 Oct 2024 01:23:31 -0400] rev 51950
tests: stabilize `test-sparse.t` on Windows
One of the reserved characters for path values is '*', so it can't be used.
Fortunately, missing this seems to not get in the way of any other tests, and it
is removed shortly after with `rm -r foo*bar`, and the extant 'foo-bar' matches
the pattern.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 03 Oct 2024 21:08:10 -0400] rev 51949
tests: fix a test hang on Windows when setting a debuglock
I have no idea why, but running the `hg -R auto-upgrade debuglock --set-lock`
command near the end of `test-upgrade-repo.t` hangs the test. It does
background the process and `killdaemons.py` runs without error, but control
doesn't return to `run-tests.py` until the process is manually killed. I did
notice that `$!` in MSYS is *not* the PID of the process that got backgrounded,
even when a simple `sleep 60 &` is run in MSYS without the *.t file. When
`killdaemons.py` is run manually with the PID in ProcessExplorer, the
backgrounded process terminates immediately, and returns control to
`run-tests.py`.
This looks like it would be a race, but the test waits 10s for the lock file to
appear before attempting to kill the process, so there's time. `hg serve` has a
`--pid-file` option to write the pid to the file, but this is only a debug
command, so I'm not bothering with cluttering the command line.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 03 Oct 2024 19:49:05 -0400] rev 51948
tests: conditionalize `chmod` usage in `test-upgrade-repo.t`
While the command itself doesn't error out on Windows, it also doesn't make the
filesystem readonly. Therefore the repo gets altered to drop dirstate-v2, and
puts it out of sync with that happens on Linux.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 02 Oct 2024 18:30:12 -0400] rev 51947
tests: print the actual timeout value used in `wait-on-file`
Previously, it was printing the time passed in, prior to it being scaled up to
account for a longer timeout.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 02 Oct 2024 18:19:59 -0400] rev 51946
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.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 02 Oct 2024 16:34:33 -0400] rev 51945
tests: stabilize `test-merge-partial-tool.t` on Windows
The test was previously failing because it was opening the shell scripts being
used as an executable in a text editor, and problems cascaded from there.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 02 Oct 2024 11:43:22 -0400] rev 51944
tests: replace `hg id --debug -i` command substitution with non-debug command
The censor and convert tests were failing on Windows because the `--debug` flag
also prints debug messages, and at least some of these were outputting:
skip updating dirstate: identity mismatch ${node}
Obviously that causes cascading problems. The other tests were OK, but it's
better to use a non debug command for stability.
Matt Harbison <matt_harbison@yahoo.com> [Tue, 01 Oct 2024 21:40:20 -0400] rev 51943
tests: correct Windows output to account for putting repos in `repo` subdir
These were missed in
55c6ebd11cb9, due to being conditionalized and not running
in CI.