diff options
author | Neal Norwitz <nnorwitz@gmail.com> | 2006-09-11 04:24:09 +0000 |
---|---|---|
committer | Neal Norwitz <nnorwitz@gmail.com> | 2006-09-11 04:24:09 +0000 |
commit | 487a6179b74b493a7717fc6ccb3d855bac837409 (patch) | |
tree | 3ec1185c27377afdffda6c690b55f3c73c92521d /Lib/test/test_sgmllib.py | |
parent | dc40c32aae1197a1b8440bc12a38779ef6a6596f (diff) | |
download | cpython-487a6179b74b493a7717fc6ccb3d855bac837409.tar.gz |
Forward port of 51850 from release25-maint branch.
As mentioned on python-dev, reverting patch #1504333 because it introduced
an infinite loop in rev 47154.
This patch also adds a test to prevent the regression.
Diffstat (limited to 'Lib/test/test_sgmllib.py')
-rw-r--r-- | Lib/test/test_sgmllib.py | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/Lib/test/test_sgmllib.py b/Lib/test/test_sgmllib.py index 28a21a466b..b6986360ac 100644 --- a/Lib/test/test_sgmllib.py +++ b/Lib/test/test_sgmllib.py @@ -286,21 +286,6 @@ DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01//EN' ('codepoint', 'convert', 42), ]) - def test_attr_values_quoted_markup(self): - """Multi-line and markup in attribute values""" - self.check_events("""<a title='foo\n<br>bar'>text</a>""", - [("starttag", "a", [("title", "foo\n<br>bar")]), - ("data", "text"), - ("endtag", "a")]) - self.check_events("""<a title='less < than'>text</a>""", - [("starttag", "a", [("title", "less < than")]), - ("data", "text"), - ("endtag", "a")]) - self.check_events("""<a title='greater > than'>text</a>""", - [("starttag", "a", [("title", "greater > than")]), - ("data", "text"), - ("endtag", "a")]) - def test_attr_funky_names(self): self.check_events("""<a a.b='v' c:d=v e-f=v>""", [ ("starttag", "a", [("a.b", "v"), ("c:d", "v"), ("e-f", "v")]), @@ -376,6 +361,19 @@ DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01//EN' ('decl', 'DOCTYPE doc [<!ATTLIST doc attr (a | b) >]'), ]) + def test_read_chunks(self): + # SF bug #1541697, this caused sgml parser to hang + # Just verify this code doesn't cause a hang. + CHUNK = 1024 # increasing this to 8212 makes the problem go away + + f = open(test_support.findfile('sgml_input.html')) + fp = sgmllib.SGMLParser() + while 1: + data = f.read(CHUNK) + fp.feed(data) + if len(data) != CHUNK: + break + # XXX These tests have been disabled by prefixing their names with # an underscore. The first two exercise outstanding bugs in the # sgmllib module, and the third exhibits questionable behavior |