run-tests: ignore PermissionError when checking available ports
I'm not sure what this is, but I'm getting it occasionally when running in WSL.
When it was raised, none of the tests could run.
--- a/tests/run-tests.py Mon Apr 12 20:58:19 2021 -0400
+++ b/tests/run-tests.py Thu Mar 11 23:20:41 2021 -0500
@@ -262,7 +262,13 @@
except socket.error as exc:
if os.name == 'nt' and exc.errno == errno.WSAEACCES:
return False
- elif exc.errno not in (
+ elif PYTHON3:
+ # TODO: make a proper exception handler after dropping py2. This
+ # works because socket.error is an alias for OSError on py3,
+ # which is also the baseclass of PermissionError.
+ if isinstance(exc, PermissionError):
+ return False
+ if exc.errno not in (
errno.EADDRINUSE,
errno.EADDRNOTAVAIL,
errno.EPROTONOSUPPORT,
--- a/tests/test-check-pyflakes.t Mon Apr 12 20:58:19 2021 -0400
+++ b/tests/test-check-pyflakes.t Thu Mar 11 23:20:41 2021 -0500
@@ -23,4 +23,5 @@
mercurial/hgweb/server.py:*:* undefined name 'reload' (glob) (?)
mercurial/util.py:*:* undefined name 'file' (glob) (?)
mercurial/encoding.py:*:* undefined name 'localstr' (glob) (?)
+ tests/run-tests.py:*:* undefined name 'PermissionError' (glob) (?)