Skip to content

Commit 88b12ba

Browse files
committed
Update test_kqueue.py from 3.13.7
1 parent b56082a commit 88b12ba

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

Lib/test/test_kqueue.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import os
66
import select
77
import socket
8+
from test import support
89
import time
910
import unittest
1011

@@ -256,6 +257,23 @@ def test_fd_non_inheritable(self):
256257
self.addCleanup(kqueue.close)
257258
self.assertEqual(os.get_inheritable(kqueue.fileno()), False)
258259

260+
@support.requires_fork()
261+
def test_fork(self):
262+
# gh-110395: kqueue objects must be closed after fork
263+
kqueue = select.kqueue()
264+
if (pid := os.fork()) == 0:
265+
try:
266+
self.assertTrue(kqueue.closed)
267+
with self.assertRaisesRegex(ValueError, "closed kqueue"):
268+
kqueue.fileno()
269+
except:
270+
os._exit(1)
271+
finally:
272+
os._exit(0)
273+
else:
274+
support.wait_process(pid, exitcode=0)
275+
self.assertFalse(kqueue.closed) # child done, we're still open.
276+
259277

260278
if __name__ == "__main__":
261279
unittest.main()

0 commit comments

Comments
 (0)