diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2018-10-31 12:36:34 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-31 12:36:34 (GMT) |
commit | 907b07ee31a657914dafb0a6b7fa724be0f8d8ac (patch) | |
tree | 9033cfe09315aa7092c23b1e9703e1f078ffaa21 /Lib/test/test_io.py | |
parent | 00093f61b38c01045b71a27eef0ff64a69188e8f (diff) | |
download | cpython-907b07ee31a657914dafb0a6b7fa724be0f8d8ac.zip cpython-907b07ee31a657914dafb0a6b7fa724be0f8d8ac.tar.gz cpython-907b07ee31a657914dafb0a6b7fa724be0f8d8ac.tar.bz2 |
bpo-35062: Fix parsing _io.IncrementalNewlineDecoder's *translate* argument. (GH-10217)
_io.IncrementalNewlineDecoder's initializer possibly assigns out-of-range
value to the bitwise struct field.
(cherry picked from commit b08746bfdf64e55ce33516f2065fa2aa4f51be95)
Co-authored-by: Xiang Zhang <angwerzx@126.com>
Diffstat (limited to 'Lib/test/test_io.py')
-rw-r--r-- | Lib/test/test_io.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index f306917..f29c16c 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -3547,6 +3547,16 @@ class IncrementalNewlineDecoderTest(unittest.TestCase): dec = self.IncrementalNewlineDecoder(None, translate=True) _check(dec) + def test_translate(self): + # issue 35062 + for translate in (-2, -1, 1, 2): + decoder = codecs.getincrementaldecoder("utf-8")() + decoder = self.IncrementalNewlineDecoder(decoder, translate) + self.check_newline_decoding_utf8(decoder) + decoder = codecs.getincrementaldecoder("utf-8")() + decoder = self.IncrementalNewlineDecoder(decoder, translate=0) + self.assertEqual(decoder.decode(b"\r\r\n"), "\r\r\n") + class CIncrementalNewlineDecoderTest(IncrementalNewlineDecoderTest): pass |