summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-07-14 19:29:23 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2014-07-14 19:29:23 (GMT)
commit24f2a5093f5a361e071b663ea153d82b05ae42b5 (patch)
treed5994b9f71f50cf227c7a26a2df78243f625d537
parentdaded8028357890c73a067c3a10ff747a1a3036b (diff)
downloadcpython-24f2a5093f5a361e071b663ea153d82b05ae42b5.zip
cpython-24f2a5093f5a361e071b663ea153d82b05ae42b5.tar.gz
cpython-24f2a5093f5a361e071b663ea153d82b05ae42b5.tar.bz2
Issue #21645: Add debug code to analyze a failure on FreeBSD 9
-rw-r--r--Lib/test/test_asyncio/test_streams.py50
1 files changed, 33 insertions, 17 deletions
diff --git a/Lib/test/test_asyncio/test_streams.py b/Lib/test/test_asyncio/test_streams.py
index 8adc3b2..0929495 100644
--- a/Lib/test/test_asyncio/test_streams.py
+++ b/Lib/test/test_asyncio/test_streams.py
@@ -609,25 +609,41 @@ os.close(fd)
rfd, wfd = os.pipe()
args = [sys.executable, '-c', code, str(wfd)]
- pipe = open(rfd, 'rb', 0)
- reader = asyncio.StreamReader(loop=self.loop, limit=1)
- protocol = asyncio.StreamReaderProtocol(reader, loop=self.loop)
- transport, _ = self.loop.run_until_complete(
- self.loop.connect_read_pipe(lambda: protocol, pipe))
-
- watcher = asyncio.SafeChildWatcher()
- watcher.attach_loop(self.loop)
+ # FIXME: Debug code for issue #21645
+ import logging
+ self.loop.set_debug(True)
+ logger = logging.getLogger('asyncio')
+ log_level = logger.level
try:
- asyncio.set_child_watcher(watcher)
- proc = self.loop.run_until_complete(
- asyncio.create_subprocess_exec(*args, pass_fds={wfd}, loop=self.loop))
- self.loop.run_until_complete(proc.wait())
+ log_handler = logging.StreamHandler(sys.stderr)
+ logger.addHandler(log_handler)
+ logger.setLevel(logging.DEBUG)
+ # FIXME: Debug code for issue #21645 ---
+
+ pipe = open(rfd, 'rb', 0)
+ reader = asyncio.StreamReader(loop=self.loop, limit=1)
+ protocol = asyncio.StreamReaderProtocol(reader, loop=self.loop)
+ transport, _ = self.loop.run_until_complete(
+ self.loop.connect_read_pipe(lambda: protocol, pipe))
+
+ watcher = asyncio.SafeChildWatcher()
+ watcher.attach_loop(self.loop)
+ try:
+ asyncio.set_child_watcher(watcher)
+ proc = self.loop.run_until_complete(
+ asyncio.create_subprocess_exec(*args, pass_fds={wfd}, loop=self.loop))
+ self.loop.run_until_complete(proc.wait())
+ finally:
+ asyncio.set_child_watcher(None)
+
+ os.close(wfd)
+ data = self.loop.run_until_complete(reader.read(-1))
+ self.assertEqual(data, b'data')
finally:
- asyncio.set_child_watcher(None)
-
- os.close(wfd)
- data = self.loop.run_until_complete(reader.read(-1))
- self.assertEqual(data, b'data')
+ # FIXME: Debug code for issue #21645
+ logger.removeHandler(log_handler)
+ logger.setLevel(log_level)
+ # FIXME: Debug code for issue #21645 ---
if __name__ == '__main__':