[Python-checkins] r88190 - in python/branches/test_subprocess_10826/Lib/test: subprocessdata/fd_status.py test_subprocess.py

antoine.pitrou python-checkins at python.org
Tue Jan 25 21:54:53 CET 2011


Author: antoine.pitrou
Date: Tue Jan 25 21:54:53 2011
New Revision: 88190
Log:
Make test_subprocess more chatty
Modified:
 python/branches/test_subprocess_10826/Lib/test/subprocessdata/fd_status.py
 python/branches/test_subprocess_10826/Lib/test/test_subprocess.py
Modified: python/branches/test_subprocess_10826/Lib/test/subprocessdata/fd_status.py
==============================================================================
--- python/branches/test_subprocess_10826/Lib/test/subprocessdata/fd_status.py	(original)
+++ python/branches/test_subprocess_10826/Lib/test/subprocessdata/fd_status.py	Tue Jan 25 21:54:53 2011
@@ -4,6 +4,7 @@
 import errno
 import os
 import fcntl
+import sys
 
 try:
 _MAXFD = os.sysconf("SC_OPEN_MAX")
@@ -21,4 +22,8 @@
 return True
 
 if __name__ == "__main__":
- print(','.join(str(fd) for fd in range(0, _MAXFD) if isopen(fd)))
+ fds = [fd for fd in range(0, _MAXFD) if isopen(fd)]
+ print(','.join(map(str, fds)))
+ if '--debug' in sys.argv[1:]:
+ for fd in fds:
+ print(fd, fcntl.fcntl(fd, fcntl.F_GETFL), os.fstat(fd))
Modified: python/branches/test_subprocess_10826/Lib/test/test_subprocess.py
==============================================================================
--- python/branches/test_subprocess_10826/Lib/test/test_subprocess.py	(original)
+++ python/branches/test_subprocess_10826/Lib/test/test_subprocess.py	Tue Jan 25 21:54:53 2011
@@ -1075,13 +1075,13 @@
 sleeper = support.findfile("input_reader.py", subdir="subprocessdata")
 fd_status = support.findfile("fd_status.py", subdir="subprocessdata")
 
- p1 = subprocess.Popen([sys.executable, sleeper],
+ p1 = subprocess.Popen([sys.executable, '-E', sleeper],
 stdin=subprocess.PIPE, stdout=subprocess.PIPE,
 stderr=subprocess.PIPE, close_fds=False)
 
 self.addCleanup(p1.communicate, b'')
 
- p2 = subprocess.Popen([sys.executable, fd_status],
+ p2 = subprocess.Popen([sys.executable, '-E', fd_status],
 stdout=subprocess.PIPE, close_fds=False)
 
 output, error = p2.communicate()
@@ -1134,7 +1134,7 @@
 
 open_fds = set(fds)
 
- p = subprocess.Popen([sys.executable, fd_status],
+ p = subprocess.Popen([sys.executable, '-E', fd_status],
 stdout=subprocess.PIPE, close_fds=False)
 output, ignored = p.communicate()
 remaining_fds = set(map(int, output.split(b',')))
@@ -1142,7 +1142,7 @@
 self.assertEqual(remaining_fds & open_fds, open_fds,
 "Some fds were closed")
 
- p = subprocess.Popen([sys.executable, fd_status],
+ p = subprocess.Popen([sys.executable, '-E', fd_status],
 stdout=subprocess.PIPE, close_fds=True)
 output, ignored = p.communicate()
 remaining_fds = set(map(int, output.split(b',')))
@@ -1166,17 +1166,22 @@
 open_fds.update(fds)
 
 for fd in open_fds:
- p = subprocess.Popen([sys.executable, fd_status],
+ p = subprocess.Popen([sys.executable, '-E', fd_status, '--debug'],
 stdout=subprocess.PIPE, close_fds=True,
 pass_fds=(fd, ))
 output, ignored = p.communicate()
 
- remaining_fds = set(map(int, output.split(b',')))
+ # First line is the list of open fds, the rest is human-readable
+ # debug output.
+ remaining_fds, *debug = output.splitlines()
+ remaining_fds = set(map(int, remaining_fds.split(b',')))
 to_be_closed = open_fds - {fd}
 # Temporary debug output for intermittent failures
 if support.verbose:
 print(" -- fds that should have been closed:", to_be_closed)
 print(" -- fds that remained open:", remaining_fds)
+ print(" -- debug info:")
+ print("\n".join(s.decode('latin1') for s in debug))
 
 self.assertIn(fd, remaining_fds, "fd to be passed not passed")
 self.assertFalse(remaining_fds & to_be_closed,


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /