Issue #10826: Prevent sporadic failure in test_subprocess on Solaris due

to open door files.
This commit is contained in:
Antoine Pitrou 2011-02-21 21:55:48 +00:00
parent 5ed8b2c737
commit ce58dc7b16
3 changed files with 15 additions and 19 deletions

View file

@ -3,22 +3,22 @@ file descriptors on stdout."""
import errno
import os
import fcntl
try:
_MAXFD = os.sysconf("SC_OPEN_MAX")
except:
_MAXFD = 256
def isopen(fd):
"""Return True if the fd is open, and False otherwise"""
try:
fcntl.fcntl(fd, fcntl.F_GETFD, 0)
except IOError as e:
if e.errno == errno.EBADF:
return False
raise
return True
if __name__ == "__main__":
print(','.join(str(fd) for fd in range(0, _MAXFD) if isopen(fd)))
fds = []
for fd in range(0, _MAXFD):
try:
st = os.fstat(fd)
except OSError as e:
if e.errno == errno.EBADF:
continue
raise
# Ignore Solaris door files
if st.st_mode & 0xF000 != 0xd000:
fds.append(fd)
print(','.join(map(str, fds)))