diff -r 42d0d4f63bf0 -r c81dce8a7bb6 mercurial/httpclient/tests/test_chunked_transfer.py --- a/mercurial/httpclient/tests/test_chunked_transfer.py Mon Oct 10 13:52:54 2011 +0200 +++ b/mercurial/httpclient/tests/test_chunked_transfer.py Mon Oct 10 17:57:40 2011 -0500 @@ -134,4 +134,20 @@ con.request('GET', '/') self.assertStringEqual('hi there\nthere\nthere\nthere\nthere\n', con.getresponse().read()) + + def testChunkedDownloadEarlyHangup(self): + con = http.HTTPConnection('1.2.3.4:80') + con._connect() + sock = con.sock + broken = chunkedblock('hi'*20)[:-1] + sock.data = ['HTTP/1.1 200 OK\r\n', + 'Server: BogusServer 1.0\r\n', + 'transfer-encoding: chunked', + '\r\n\r\n', + broken, + ] + sock.close_on_empty = True + con.request('GET', '/') + resp = con.getresponse() + self.assertRaises(http.HTTPRemoteClosedError, resp.read) # no-check-code