diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2013-04-24 21:33:20 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2013-04-24 21:33:20 (GMT) |
commit | 34373b22523302202345007ee685cc833a2b10e0 (patch) | |
tree | cd2cd67dfc0c18b2cfa6cdca900470e355833559 /Lib | |
parent | 51460cc490f92ace44b3b2e4eecad5980537d317 (diff) | |
parent | e1a1674e1ed954c82cf1c88f3392baf4fd86ecdc (diff) | |
download | cpython-34373b22523302202345007ee685cc833a2b10e0.zip cpython-34373b22523302202345007ee685cc833a2b10e0.tar.gz cpython-34373b22523302202345007ee685cc833a2b10e0.tar.bz2 |
Issue #17835: Fix test_io when the default OS pipe buffer size is larger than one million bytes.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/support.py | 10 | ||||
-rw-r--r-- | Lib/test/test_io.py | 4 |
2 files changed, 8 insertions, 6 deletions
diff --git a/Lib/test/support.py b/Lib/test/support.py index d089767..97de608 100644 --- a/Lib/test/support.py +++ b/Lib/test/support.py @@ -575,10 +575,12 @@ def _is_ipv6_enabled(): IPV6_ENABLED = _is_ipv6_enabled() -# A constant likely larger than the underlying OS pipe buffer size. -# Windows limit seems to be around 512B, and many Unix kernels have a 64K pipe -# buffer size or 16*PAGE_SIZE: take a few megs to be sure. This -PIPE_MAX_SIZE = 3 * 1000 * 1000 +# A constant likely larger than the underlying OS pipe buffer size, to +# make writes blocking. +# Windows limit seems to be around 512 B, and many Unix kernels have a +# 64 KiB pipe buffer size or 16 * PAGE_SIZE: take a few megs to be sure. +# (see issue #17835 for a discussion of this number). +PIPE_MAX_SIZE = 4 *1024 * 1024 + 1 # decorator for skipping tests on non-IEEE 754 platforms diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index e5474f0..44e5cad 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -3069,7 +3069,7 @@ class SignalsTest(unittest.TestCase): # The buffered IO layer must check for pending signal # handlers, which in this case will invoke alarm_interrupt(). self.assertRaises(ZeroDivisionError, - wio.write, item * (support.PIPE_MAX_SIZE // len(item))) + wio.write, item * (support.PIPE_MAX_SIZE // len(item) + 1)) t.join() # We got one byte, get another one and check that it isn't a # repeat of the first one. @@ -3168,7 +3168,7 @@ class SignalsTest(unittest.TestCase): select = support.import_module("select") # A quantity that exceeds the buffer size of an anonymous pipe's # write end. - N = 1024 * 1024 + N = support.PIPE_MAX_SIZE r, w = os.pipe() fdopen_kwargs["closefd"] = False # We need a separate thread to read from the pipe and allow the |