Issue #5661: Add a test for ECONNRESET/EPIPE handling to test_asyncore. Patch
by Xavier de Gaye.
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 @@
         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 @@
 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 @@
 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