From 6aa278ee53647ceb63cfe5ce6c1a07b0e10cdf90 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 3 Mar 2010 00:18:49 +0000 Subject: Merged revisions 78603 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r78603 | victor.stinner | 2010-03-03 00:20:02 +0100 (mer., 03 mars 2010) | 5 lines Issue #7820: The parser tokenizer restores all bytes in the right if the BOM check fails. Fix an assertion in pydebug mode. ........ --- Lib/test/test_pep263.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'Lib/test') diff --git a/Lib/test/test_pep263.py b/Lib/test/test_pep263.py index 8c1fbe770a..e136a9ccb0 100644 --- a/Lib/test/test_pep263.py +++ b/Lib/test/test_pep263.py @@ -44,6 +44,17 @@ class PEP263Test(unittest.TestCase): self.assertEqual(len(d['a']), len(d['b'])) self.assertEqual(ascii(d['a']), ascii(d['b'])) + def test_issue7820(self): + # Ensure that check_bom() restores all bytes in the right order if + # check_bom() fails in pydebug mode: a buffer starts with the first + # byte of a valid BOM, but next bytes are different + + # one byte in common with the UTF-16-LE BOM + self.assertRaises(SyntaxError, eval, b'\xff\x20') + + # two bytes in common with the UTF-8 BOM + self.assertRaises(SyntaxError, eval, b'\xef\xbb\x20') + def test_main(): support.run_unittest(PEP263Test) -- cgit v1.2.1