Merged revisions 78608 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r78608 | victor.stinner | 2010-03-03 01:18:49 +0100 (mer., 03 mars 2010) | 12 lines

  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.
  ........
................
This commit is contained in:
Victor Stinner 2010-03-03 00:22:21 +00:00
parent 117ff17da3
commit 151205f24f
3 changed files with 42 additions and 23 deletions

View file

@ -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)