diff options
author | fancidev <fancidev@gmail.com> | 2022-10-17 15:45:38 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-17 15:45:38 (GMT) |
commit | 3e82ad05b18d004e4d01fdb643344d6a2bf11900 (patch) | |
tree | 0c0eaa7f597dab3eb21b92ae03b383bcee4e9321 | |
parent | 72c10d3f1a6d42b70cc4b843295361db17cc0964 (diff) | |
download | cpython-3e82ad05b18d004e4d01fdb643344d6a2bf11900.zip cpython-3e82ad05b18d004e4d01fdb643344d6a2bf11900.tar.gz cpython-3e82ad05b18d004e4d01fdb643344d6a2bf11900.tar.bz2 |
gh-98174: Handle EPROTOTYPE under macOS in test_sendfile_fallback_close_peer_in_the_middle_of_receiving (#98316)
Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
-rw-r--r-- | Lib/test/test_asyncio/test_sendfile.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/Lib/test/test_asyncio/test_sendfile.py b/Lib/test/test_asyncio/test_sendfile.py index a10504b..0198da2 100644 --- a/Lib/test/test_asyncio/test_sendfile.py +++ b/Lib/test/test_asyncio/test_sendfile.py @@ -1,6 +1,7 @@ """Tests for sendfile functionality.""" import asyncio +import errno import os import socket import sys @@ -484,8 +485,17 @@ class SendfileMixin(SendfileBase): srv_proto, cli_proto = self.prepare_sendfile(close_after=1024) with self.assertRaises(ConnectionError): - self.run_loop( - self.loop.sendfile(cli_proto.transport, self.file)) + try: + self.run_loop( + self.loop.sendfile(cli_proto.transport, self.file)) + except OSError as e: + # macOS may raise OSError of EPROTOTYPE when writing to a + # socket that is in the process of closing down. + if e.errno == errno.EPROTOTYPE and sys.platform == "darwin": + raise ConnectionError + else: + raise + self.run_loop(srv_proto.done) self.assertTrue(1024 <= srv_proto.nbytes < len(self.DATA), |