##// END OF EJS Templates
Test for filling stderr buffer.
Itamar Turner-Trauring -
Show More
@@ -26,6 +26,7 b' import nose.tools as nt'
26 26 from IPython.utils.process import (find_cmd, FindCmdError, arg_split,
27 27 system, getoutput, getoutputerror,
28 28 get_output_error_code)
29 from IPython.utils.capture import capture_output
29 30 from IPython.testing import decorators as dec
30 31 from IPython.testing import tools as tt
31 32
@@ -149,6 +150,16 b' class SubProcessTestCase(tt.TempFileMixin):'
149 150 status, 0, "The process wasn't interrupted. Status: %s" % (status,)
150 151 )
151 152
153 def test_stderr_while_stdout_open(self):
154 """
155 If lots of data is written to stderr while stdout is still open, enough
156 data to fill the pipe buffer in fact, the process still exits (i.e.
157 there is no deadlock).
158 """
159 with capture_output(display=False):
160 system(("%s -c 'import sys\nfor i in range(2000): " +
161 "sys.stderr.write(\" \" * 100 + \"\\n\")'") % (python,))
162
152 163 def test_getoutput(self):
153 164 out = getoutput('%s "%s"' % (python, self.fname))
154 165 # we can't rely on the order the line buffered streams are flushed
General Comments 0
You need to be logged in to leave comments. Login now