diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2014-07-14 19:29:23 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2014-07-14 19:29:23 (GMT) |
commit | 24f2a5093f5a361e071b663ea153d82b05ae42b5 (patch) | |
tree | d5994b9f71f50cf227c7a26a2df78243f625d537 | |
parent | daded8028357890c73a067c3a10ff747a1a3036b (diff) | |
download | cpython-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.py | 50 |
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__': |