Skip to content

Commit 098eb36

Browse files
miss-islingtonserhiy-storchakaclaude
authored
[3.15] gh-154379: Fix test_epoll on Solaris (GH-154380) (GH-154382)
A non-blocking connect() can be completed immediately, and unregistering a closed file descriptor succeeds on Solaris. (cherry picked from commit b6abee5) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent e265465 commit 098eb36

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

Lib/test/test_epoll.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import os
2626
import select
2727
import socket
28+
import sys
2829
import time
2930
import unittest
3031
from test import support
@@ -52,12 +53,11 @@ def tearDown(self):
5253
def _connected_pair(self):
5354
client = socket.socket()
5455
client.setblocking(False)
56+
# The connection is either established immediately or in progress.
5557
try:
5658
client.connect(('127.0.0.1', self.serverSocket.getsockname()[1]))
5759
except OSError as e:
5860
self.assertEqual(e.args[0], errno.EINPROGRESS)
59-
else:
60-
raise AssertionError("Connect should have raised EINPROGRESS")
6161
server, addr = self.serverSocket.accept()
6262

6363
self.connections.extend((client, server))
@@ -218,6 +218,9 @@ def test_errors(self):
218218
self.assertRaises(ValueError, select.epoll().register, -1,
219219
select.EPOLLIN)
220220

221+
@unittest.skipIf(sys.platform.startswith('sunos'),
222+
'unregistering a closed file descriptor succeeds '
223+
'on Solaris')
221224
def test_unregister_closed(self):
222225
server, client = self._connected_pair()
223226
fd = server.fileno()

0 commit comments

Comments
 (0)