Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
1e2ed1a6
Commit
1e2ed1a6
authored
May 29, 2011
by
Charles-François Natali
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue #12196: Add PIPE_MAX_SIZE to test.support, constant larger than the
underlying OS pipe buffer size.
parent
2e65dbf7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
9 deletions
+13
-9
Lib/test/support.py
Lib/test/support.py
+8
-1
Lib/test/test_io.py
Lib/test/test_io.py
+1
-1
Lib/test/test_subprocess.py
Lib/test/test_subprocess.py
+4
-7
No files found.
Lib/test/support.py
View file @
1e2ed1a6
...
...
@@ -48,7 +48,7 @@ __all__ = [
"threading_cleanup"
,
"reap_children"
,
"cpython_only"
,
"check_impl_detail"
,
"get_attribute"
,
"swap_item"
,
"swap_attr"
,
"requires_IEEE_754"
,
"TestHandler"
,
"Matcher"
,
"can_symlink"
,
"skip_unless_symlink"
,
"import_fresh_module"
,
"requires_zlib"
"import_fresh_module"
,
"requires_zlib"
,
"PIPE_MAX_SIZE"
]
class
Error
(
Exception
):
...
...
@@ -409,6 +409,13 @@ 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 most Unix kernels have a 64K pipe
# buffer size: take 1M to be sure.
PIPE_MAX_SIZE
=
1024
*
1024
# decorator for skipping tests on non-IEEE 754 platforms
requires_IEEE_754
=
unittest
.
skipUnless
(
float
.
__getformat__
(
"double"
).
startswith
(
"IEEE"
),
...
...
Lib/test/test_io.py
View file @
1e2ed1a6
...
...
@@ -2683,7 +2683,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
*
(
1024
*
1024
))
wio
.
write
,
item
*
(
support
.
PIPE_MAX_SIZE
//
len
(
item
)
))
t
.
join
()
# We got one byte, get another one and check that it isn't a
# repeat of the first one.
...
...
Lib/test/test_subprocess.py
View file @
1e2ed1a6
...
...
@@ -489,24 +489,21 @@ class ProcessTestCase(BaseTestCase):
# This test will probably deadlock rather than fail, if
# communicate() does not work properly.
x
,
y
=
os
.
pipe
()
if
mswindows
:
pipe_buf
=
512
else
:
pipe_buf
=
os
.
fpathconf
(
x
,
"PC_PIPE_BUF"
)
os
.
close
(
x
)
os
.
close
(
y
)
p
=
subprocess
.
Popen
([
sys
.
executable
,
"-c"
,
'import sys,os;'
'sys.stdout.write(sys.stdin.read(47));'
'sys.stderr.write("xyz"*%d);'
'sys.stdout.write(sys.stdin.read())'
%
pipe_buf
],
'sys.stderr.write("x" * %d);'
'sys.stdout.write(sys.stdin.read())'
%
support
.
PIPE_MAX_SIZE
],
stdin
=
subprocess
.
PIPE
,
stdout
=
subprocess
.
PIPE
,
stderr
=
subprocess
.
PIPE
)
self
.
addCleanup
(
p
.
stdout
.
close
)
self
.
addCleanup
(
p
.
stderr
.
close
)
self
.
addCleanup
(
p
.
stdin
.
close
)
string_to_write
=
b"a
bc"
*
pipe_buf
string_to_write
=
b"a
"
*
support
.
PIPE_MAX_SIZE
(
stdout
,
stderr
)
=
p
.
communicate
(
string_to_write
)
self
.
assertEqual
(
stdout
,
string_to_write
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment