mirror of https://github.com/python/cpython
Issue #18571: Merge duplicate test code
Merge test/subprocessdata/inherited.py into test/subprocessdata/fd_status.py
This commit is contained in:
parent
8913a6c83d
commit
f6fa22efe0
|
@ -1,18 +1,27 @@
|
|||
"""When called as a script, print a comma-separated list of the open
|
||||
file descriptors on stdout."""
|
||||
file descriptors on stdout.
|
||||
|
||||
Usage:
|
||||
fd_stats.py: check all file descriptors
|
||||
fd_status.py fd1 fd2 ...: check only specified file descriptors
|
||||
"""
|
||||
|
||||
import errno
|
||||
import os
|
||||
import stat
|
||||
|
||||
try:
|
||||
_MAXFD = os.sysconf("SC_OPEN_MAX")
|
||||
except:
|
||||
_MAXFD = 256
|
||||
import sys
|
||||
|
||||
if __name__ == "__main__":
|
||||
fds = []
|
||||
for fd in range(0, _MAXFD):
|
||||
if len(sys.argv) == 1:
|
||||
try:
|
||||
_MAXFD = os.sysconf("SC_OPEN_MAX")
|
||||
except:
|
||||
_MAXFD = 256
|
||||
test_fds = range(0, _MAXFD)
|
||||
else:
|
||||
test_fds = map(int, sys.argv[1:])
|
||||
for fd in test_fds:
|
||||
try:
|
||||
st = os.fstat(fd)
|
||||
except OSError as e:
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
"""Similar to fd_status.py, but only checks file descriptors passed on the
|
||||
command line."""
|
||||
|
||||
import errno
|
||||
import os
|
||||
import sys
|
||||
import stat
|
||||
|
||||
if __name__ == "__main__":
|
||||
fds = map(int, sys.argv[1:])
|
||||
inherited = []
|
||||
for fd in fds:
|
||||
try:
|
||||
st = os.fstat(fd)
|
||||
except OSError as e:
|
||||
if e.errno == errno.EBADF:
|
||||
continue
|
||||
raise
|
||||
# Ignore Solaris door files
|
||||
if not stat.S_ISDOOR(st.st_mode):
|
||||
inherited.append(fd)
|
||||
print(','.join(map(str, inherited)))
|
|
@ -1926,7 +1926,7 @@ class POSIXProcessTestCase(BaseTestCase):
|
|||
self.assertIn('overriding close_fds', str(context.warning))
|
||||
|
||||
def test_pass_fds_inheritable(self):
|
||||
script = support.findfile("inherited.py", subdir="subprocessdata")
|
||||
script = support.findfile("fd_status.py", subdir="subprocessdata")
|
||||
|
||||
inheritable, non_inheritable = os.pipe()
|
||||
self.addCleanup(os.close, inheritable)
|
||||
|
@ -1945,7 +1945,7 @@ class POSIXProcessTestCase(BaseTestCase):
|
|||
|
||||
# the inheritable file descriptor must be inherited, so its inheritable
|
||||
# flag must be set in the child process after fork() and before exec()
|
||||
self.assertEqual(fds, set(pass_fds))
|
||||
self.assertEqual(fds, set(pass_fds), "output=%a" % output)
|
||||
|
||||
# inheritable flag must not be changed in the parent process
|
||||
self.assertEqual(os.get_inheritable(inheritable), True)
|
||||
|
|
Loading…
Reference in New Issue