mirror of
https://github.com/python/cpython.git
synced 2025-08-02 16:13:13 +00:00
bpo-40140: test_builtin.PtyTests registers SIGHUP handler (GH-19314)
test_builtin.PtyTests now registers an handler for SIGHUP signal. Closing the PTY file descriptor can emit a SIGHUP signal: just ignore it. run_child() now also closes the PTY file descriptor before waiting for the process completition, otherwise the test hangs on AIX.
This commit is contained in:
parent
3c3aa4516c
commit
7a51a7e19f
2 changed files with 21 additions and 8 deletions
|
@ -70,7 +70,7 @@ class PtyTest(unittest.TestCase):
|
|||
self.addCleanup(signal.signal, signal.SIGALRM, old_alarm)
|
||||
|
||||
old_sighup = signal.signal(signal.SIGHUP, self.handle_sighup)
|
||||
self.addCleanup(signal.signal, signal.SIGHUP, old_alarm)
|
||||
self.addCleanup(signal.signal, signal.SIGHUP, old_sighup)
|
||||
|
||||
# isatty() and close() can hang on some platforms. Set an alarm
|
||||
# before running the test to make sure we don't hang forever.
|
||||
|
@ -81,8 +81,8 @@ class PtyTest(unittest.TestCase):
|
|||
self.fail("isatty hung")
|
||||
|
||||
@staticmethod
|
||||
def handle_sighup(sig, frame):
|
||||
# if the process is the session leader, os.close(master_fd)
|
||||
def handle_sighup(signum, frame):
|
||||
# bpo-38547: if the process is the session leader, os.close(master_fd)
|
||||
# of "master_fd, slave_name = pty.master_open()" raises SIGHUP
|
||||
# signal: just ignore the signal.
|
||||
pass
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue