Sun, 16 Dec 2018 17:42:45 -0500 py3: enable legacy stdio mode in exewrapper
Matt Harbison <matt_harbison@yahoo.com> [Sun, 16 Dec 2018 17:42:45 -0500] rev 40989
py3: enable legacy stdio mode in exewrapper This drops the test failure count from 166 to 117. The failures were typically in the form of `hg serve -d` spawning but crashing immediately, leaving clients with "bad http status" lines, connection refusals, and so forth. The underlying message on the server side was either "OSError: [WinError 6] The handle is invalid" or "OSError: [WinError 1] Incorrect function". Additionally, no output was rendered if the pager was activated. Thanks to Yuya for diagnosing the problem. The failure count drops to 107 when PYTHONLEGACYWINDOWSSTDIO=1 is defined in the environment. These failures seem to revolve around the dummyssh server process, and dumbhttp.py. So I'll probably add that to the test runner. One small regression here (only in py3) is that if hg.exe is already built, a messagebox appears when building it again saying that python37.dll can't be loaded. Python3 isn't in PATH by default, and setup.py tries running bare `hg` first. But MSYS prepends '.' to PATH, so it runs the local hg, but can't find the library. It falls back to the python used to invoke setup.py, so ultimately it works. I'm not sure if it's better to strip '.' from PATH or just skip right to `sys.executable hg` on Windows. Also, something seems to be wrong with run-tests._usecorrectpython(). I accidentially left off the 'PYTHON="py -3"' when building (thus making py2 stuff), and yet managed to invoke run-tests.py with "py -3". (And that only had 67 failures.)
Sun, 16 Dec 2018 17:36:51 -0500 run-tests: alias hg to hg.exe on Windows
Matt Harbison <matt_harbison@yahoo.com> [Sun, 16 Dec 2018 17:36:51 -0500] rev 40988
run-tests: alias hg to hg.exe on Windows To enable legacy stdio mode on Windows, hg.exe needs to be updated. But before that, we actually have to use it when running the tests. I *think* what was happening before was when MSYS invoked `hg`, it looked at the shbang line and ran python.exe found there. The test harness must be updating $PATH to include the python used to launch it, and therefore it ran py3. As a side note, this also fixed `py -3 run-tests.py` (without --local), which complained about the space in the shbang line before this. This should also help in WSL, because the explicit '.exe' is needed to invoke a Windows app instead of invoking the Linux app. I have no idea why this change capitalizes Lib in the tests, as it was previously lowercase for both py2 and py3.
Sun, 16 Dec 2018 15:47:08 -0500 py3: conditionalize the python version in test-install.t
Matt Harbison <matt_harbison@yahoo.com> [Sun, 16 Dec 2018 15:47:08 -0500] rev 40987
py3: conditionalize the python version in test-install.t
Sun, 16 Dec 2018 18:51:48 +0000 tests: followup on network related errors on Debian 9
Boris Feld <boris.feld@octobus.net> [Sun, 16 Dec 2018 18:51:48 +0000] rev 40986
tests: followup on network related errors on Debian 9 First, update test-clonebundles.t which was failing since the introduction of the `$EADDRNOTAVAIL$` common pattern. Also update two tests from 8695fbe17f7c with a more compact condition line. Differential Revision: https://phab.mercurial-scm.org/D5445
Sun, 16 Dec 2018 17:55:08 +0900 py3: unimplement RevlogError.__str__()
Yuya Nishihara <yuya@tcha.org> [Sun, 16 Dec 2018 17:55:08 +0900] rev 40985
py3: unimplement RevlogError.__str__() On Python 2, str(exc) would crash if __str__() returned a unicode containing non-ASCII characters.
Sun, 16 Dec 2018 17:53:17 +0900 py3: use forcebytestr() to stringify hook exception
Yuya Nishihara <yuya@tcha.org> [Sun, 16 Dec 2018 17:53:17 +0900] rev 40984
py3: use forcebytestr() to stringify hook exception This fixes test-narrow-exchange.t.
Sat, 15 Dec 2018 23:14:03 -0500 color: fix a documentation typo
Matt Harbison <matt_harbison@yahoo.com> [Sat, 15 Dec 2018 23:14:03 -0500] rev 40983
color: fix a documentation typo
(0) -30000 -10000 -3000 -1000 -300 -100 -30 -10 -7 +7 +10 +30 +100 +300 +1000 +3000 +10000 tip