summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_asyncio
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-11-28 17:02:03 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2014-11-28 17:02:03 (GMT)
commitcbbd04d1769735f6dbb5fd7b204e5ea29f748375 (patch)
tree7611af2e29cfda3c05ccd1042eaaa618c260b07a /Lib/test/test_asyncio
parente7182979d6e8178e4bbcc50beb142624b1a88223 (diff)
downloadcpython-cbbd04d1769735f6dbb5fd7b204e5ea29f748375.zip
cpython-cbbd04d1769735f6dbb5fd7b204e5ea29f748375.tar.gz
cpython-cbbd04d1769735f6dbb5fd7b204e5ea29f748375.tar.bz2
Issue #22685: Debug test_pause_reading() on FreeBSD
Diffstat (limited to 'Lib/test/test_asyncio')
-rw-r--r--Lib/test/test_asyncio/test_subprocess.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/Lib/test/test_asyncio/test_subprocess.py b/Lib/test/test_asyncio/test_subprocess.py
index d0ab230..c84078d 100644
--- a/Lib/test/test_asyncio/test_subprocess.py
+++ b/Lib/test/test_asyncio/test_subprocess.py
@@ -163,13 +163,14 @@ class SubprocessMixin:
self.loop.run_until_complete(proc.wait())
def test_pause_reading(self):
+ limit = 10
+ size = (limit * 2 + 1)
+
@asyncio.coroutine
def test_pause_reading():
- limit = 100
-
code = '\n'.join((
'import sys',
- 'sys.stdout.write("x" * %s)' % (limit * 2 + 1),
+ 'sys.stdout.write("x" * %s)' % size,
'sys.stdout.flush()',
))
proc = yield from asyncio.create_subprocess_exec(
@@ -181,17 +182,19 @@ class SubprocessMixin:
stdout_transport = proc._transport.get_pipe_transport(1)
stdout_transport.pause_reading = mock.Mock()
- yield from proc.wait()
+ stdout, stderr = yield from proc.communicate()
# The child process produced more than limit bytes of output,
# the stream reader transport should pause the protocol to not
# allocate too much memory.
- return stdout_transport.pause_reading.called
+ return (stdout, stdout_transport)
# Issue #22685: Ensure that the stream reader pauses the protocol
# when the child process produces too much data
- called = self.loop.run_until_complete(test_pause_reading())
- self.assertTrue(called)
+ stdout, transport = self.loop.run_until_complete(test_pause_reading())
+
+ self.assertEqual(stdout, b'x' * size)
+ self.assertTrue(transport.pause_reading.called)
if sys.platform != 'win32':