diff options
| author | Seth M. Larson <SethMichaelLarson@users.noreply.github.com> | 2017-03-03 04:21:18 (GMT) |
|---|---|---|
| committer | Yury Selivanov <yury@magic.io> | 2017-03-03 17:23:44 (GMT) |
| commit | f7f024a721d53978d03129e8eb5111d4f74534a9 (patch) | |
| tree | 185e73281542126450a09b01d661e785ad83ec04 /Lib/test/test_asyncio/test_subprocess.py | |
| parent | d0620bcd4eb8b7bb39d7aedc3e434585959c3177 (diff) | |
| download | cpython-f7f024a721d53978d03129e8eb5111d4f74534a9.zip cpython-f7f024a721d53978d03129e8eb5111d4f74534a9.tar.gz cpython-f7f024a721d53978d03129e8eb5111d4f74534a9.tar.bz2 | |
bpo-29704: Fix asyncio.SubprocessStreamProtocol closing (#405)
Diffstat (limited to 'Lib/test/test_asyncio/test_subprocess.py')
| -rw-r--r-- | Lib/test/test_asyncio/test_subprocess.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/Lib/test/test_asyncio/test_subprocess.py b/Lib/test/test_asyncio/test_subprocess.py index bba688b..2e14a8a 100644 --- a/Lib/test/test_asyncio/test_subprocess.py +++ b/Lib/test/test_asyncio/test_subprocess.py @@ -459,6 +459,30 @@ class SubprocessMixin: self.loop.run_until_complete(create) self.assertEqual(warns, []) + def test_read_stdout_after_process_exit(self): + @asyncio.coroutine + def execute(): + code = '\n'.join(['import sys', + 'for _ in range(64):', + ' sys.stdout.write("x" * 4096)', + 'sys.stdout.flush()', + 'sys.exit(1)']) + + fut = asyncio.create_subprocess_exec( + sys.executable, '-c', code, + stdout=asyncio.subprocess.PIPE, + loop=self.loop) + + process = yield from fut + while True: + data = yield from process.stdout.read(65536) + if data: + yield from asyncio.sleep(0.3, loop=self.loop) + else: + break + + self.loop.run_until_complete(execute()) + if sys.platform != 'win32': # Unix |
