This is an archive of the discontinued Mercurial Phabricator instance.

tests: log sendall() operations and port test-http-bad-server.t
ClosedPublic

Authored by indygreg on Jan 30 2019, 3:56 PM.

Details

Summary

Python 3's HTTP server layer buffers output and uses sendall()
instead of write(). In order to make test-http-bad-server.t pass
on Python 3, we needed to teach our socket proxy to log sendall()
events and to abort future sends if we reached our send limit.

The tests using tail were difficult to port with inline output
conditionals since the number of lines varied. So we now use
#if py3 for these tests.

test-http-bad-server.t now passes on Python 3.6 and 3.7 on at
least Linux. However, it does not yet pass on Python 3.5 because
of low-level differences to how the HTTP server is implemented.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.