mirror of
https://github.com/python/cpython.git
synced 2026-01-06 15:32:22 +00:00
Improve the subprocess restore_signals=True test. (GH-7414)
It wasn't testing functionality. Now it is (on Linux anyways).
This commit is contained in:
parent
c56b17bd8c
commit
5f3d04fa4e
1 changed files with 22 additions and 6 deletions
|
|
@ -1617,13 +1617,29 @@ def bad_error(*args):
|
|||
|
||||
self.assertIn(repr(error_data), str(e.exception))
|
||||
|
||||
|
||||
@unittest.skipIf(not os.path.exists('/proc/self/status'),
|
||||
"need /proc/self/status")
|
||||
def test_restore_signals(self):
|
||||
# Code coverage for both values of restore_signals to make sure it
|
||||
# at least does not blow up.
|
||||
# A test for behavior would be complex. Contributions welcome.
|
||||
subprocess.call([sys.executable, "-c", ""], restore_signals=True)
|
||||
subprocess.call([sys.executable, "-c", ""], restore_signals=False)
|
||||
# Blindly assume that cat exists on systems with /proc/self/status...
|
||||
default_proc_status = subprocess.check_output(
|
||||
['cat', '/proc/self/status'],
|
||||
restore_signals=False)
|
||||
for line in default_proc_status.splitlines():
|
||||
if line.startswith(b'SigIgn'):
|
||||
default_sig_ign_mask = line
|
||||
break
|
||||
else:
|
||||
self.skipTest("SigIgn not found in /proc/self/status.")
|
||||
restored_proc_status = subprocess.check_output(
|
||||
['cat', '/proc/self/status'],
|
||||
restore_signals=True)
|
||||
for line in restored_proc_status.splitlines():
|
||||
if line.startswith(b'SigIgn'):
|
||||
restored_sig_ign_mask = line
|
||||
break
|
||||
self.assertNotEqual(default_sig_ign_mask, restored_sig_ign_mask,
|
||||
msg="restore_signals=True should've unblocked "
|
||||
"SIGPIPE and friends.")
|
||||
|
||||
def test_start_new_session(self):
|
||||
# For code coverage of calling setsid(). We don't care if we get an
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue