Issue #5433: Excessive newline detection optimization in IncrementalNewlineDecoder
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index 3189f9c..5fc53ea 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -1915,6 +1915,19 @@
decoder = self.IncrementalNewlineDecoder(decoder, translate=True)
self.check_newline_decoding_utf8(decoder)
+ def test_newline_bytes(self):
+ # Issue 5433: Excessive optimization in IncrementalNewlineDecoder
+ def _check(dec):
+ self.assertEquals(dec.newlines, None)
+ self.assertEquals(dec.decode("\u0D00"), "\u0D00")
+ self.assertEquals(dec.newlines, None)
+ self.assertEquals(dec.decode("\u0A00"), "\u0A00")
+ self.assertEquals(dec.newlines, None)
+ dec = self.IncrementalNewlineDecoder(None, translate=False)
+ _check(dec)
+ dec = self.IncrementalNewlineDecoder(None, translate=True)
+ _check(dec)
+
class CIncrementalNewlineDecoderTest(IncrementalNewlineDecoderTest):
pass