summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_asyncore.py28
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS3
3 files changed, 32 insertions, 0 deletions
diff --git a/Lib/test/test_asyncore.py b/Lib/test/test_asyncore.py
index 2c84a27..7bb594d 100644
--- a/Lib/test/test_asyncore.py
+++ b/Lib/test/test_asyncore.py
@@ -632,6 +632,34 @@ class BaseTestAPI(unittest.TestCase):
client = TestClient(self.family, server.address)
self.loop_waiting_for_flag(client)
+ def test_handle_close_after_conn_broken(self):
+ # Check that ECONNRESET/EPIPE is correctly handled (issues #5661 and
+ # #11265).
+
+ data = b'\0' * 128
+
+ class TestClient(BaseClient):
+
+ def handle_write(self):
+ self.send(data)
+
+ def handle_close(self):
+ self.flag = True
+ self.close()
+
+ class TestHandler(BaseTestHandler):
+
+ def handle_read(self):
+ self.recv(len(data))
+ self.close()
+
+ def writable(self):
+ return False
+
+ server = BaseServer(self.family, self.addr, TestHandler)
+ client = TestClient(self.family, server.address)
+ self.loop_waiting_for_flag(client)
+
@unittest.skipIf(sys.platform.startswith("sunos"),
"OOB support is broken on Solaris")
def test_handle_expt(self):
diff --git a/Misc/ACKS b/Misc/ACKS
index 2a62d96..821a812 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -225,6 +225,7 @@ Pierre-Yves David
Scott David Daniels
Ben Darnell
Jonathan Dasteel
+Xavier de Gaye
John DeGood
Ned Deily
Vincent Delft
diff --git a/Misc/NEWS b/Misc/NEWS
index 92f8818..a821751 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1500,6 +1500,9 @@ Extension Modules
Tests
-----
+- Issue #5661: Add a test for ECONNRESET/EPIPE handling to test_asyncore. Patch
+ by Xavier de Gaye.
+
- Issue #13218: Fix test_ssl failures on Debian/Ubuntu.
- Re-enable lib2to3's test_parser.py tests, though with an expected failure