Skip to content

test.test_xml_etree*.XMLPullParserTest.test_simple_xml fails with (system) expat 2.6.0 #115133

Closed
@mgorny

Description

@mgorny

Bug report

Bug description:

Expat 2.6.0 was released yesterday, with CVE fixes. After upgrading the system library and building CPython --with-system-expat, I'm getting the following test failures:

====================================================================== FAIL: test_simple_xml (test.test_xml_etree.XMLPullParserTest.test_simple_xml) (chunk_size=1) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/mgorny/git/cpython/Lib/test/test_xml_etree.py", line 1495, in test_simple_xml self.assert_event_tags(parser, [('end', 'element')]) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/mgorny/git/cpython/Lib/test/test_xml_etree.py", line 1480, in assert_event_tags self.assertEqual([(action, elem.tag) for action, elem in events], ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected) ^^^^^^^^^ AssertionError: Lists differ: [] != [('end', 'element')] Second list contains 1 additional elements. First extra element 0: ('end', 'element') - [] + [('end', 'element')] ====================================================================== FAIL: test_simple_xml (test.test_xml_etree.XMLPullParserTest.test_simple_xml) (chunk_size=5) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/mgorny/git/cpython/Lib/test/test_xml_etree.py", line 1498, in test_simple_xml self.assert_event_tags(parser, [ ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ ('end', 'element'), ^^^^^^^^^^^^^^^^^^^ ('end', 'empty-element'), ^^^^^^^^^^^^^^^^^^^^^^^^^ ]) ^^ File "/home/mgorny/git/cpython/Lib/test/test_xml_etree.py", line 1480, in assert_event_tags self.assertEqual([(action, elem.tag) for action, elem in events], ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected) ^^^^^^^^^ AssertionError: Lists differ: [('end', 'element')] != [('end', 'element'), ('end', 'empty-element')] Second list contains 1 additional elements. First extra element 1: ('end', 'empty-element') - [('end', 'element')] + [('end', 'element'), ('end', 'empty-element')] ---------------------------------------------------------------------- ====================================================================== FAIL: test_simple_xml (test.test_xml_etree_c.XMLPullParserTest.test_simple_xml) (chunk_size=1) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/mgorny/git/cpython/Lib/test/test_xml_etree.py", line 1495, in test_simple_xml self.assert_event_tags(parser, [('end', 'element')]) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/mgorny/git/cpython/Lib/test/test_xml_etree.py", line 1480, in assert_event_tags self.assertEqual([(action, elem.tag) for action, elem in events], ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected) ^^^^^^^^^ AssertionError: Lists differ: [] != [('end', 'element')] Second list contains 1 additional elements. First extra element 0: ('end', 'element') - [] + [('end', 'element')] ====================================================================== FAIL: test_simple_xml (test.test_xml_etree_c.XMLPullParserTest.test_simple_xml) (chunk_size=5) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/mgorny/git/cpython/Lib/test/test_xml_etree.py", line 1498, in test_simple_xml self.assert_event_tags(parser, [ ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ ('end', 'element'), ^^^^^^^^^^^^^^^^^^^ ('end', 'empty-element'), ^^^^^^^^^^^^^^^^^^^^^^^^^ ]) ^^ File "/home/mgorny/git/cpython/Lib/test/test_xml_etree.py", line 1480, in assert_event_tags self.assertEqual([(action, elem.tag) for action, elem in events], ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected) ^^^^^^^^^ AssertionError: Lists differ: [('end', 'element')] != [('end', 'element'), ('end', 'empty-element')] Second list contains 1 additional elements. First extra element 1: ('end', 'empty-element') - [('end', 'element')] + [('end', 'element'), ('end', 'empty-element')] ----------------------------------------------------------------------

I have reproduced with 3.11.8, 3.12.8 and main as of 2afc718, both using Gentoo ebuild and raw git repository. I've tested the latter like this:

./configure -C --with-system-expat make -j12 ./python -u -W default -bb -E -m test -vv test_xml_etree{,_c} 

CC @hartwork

CPython versions tested on:

3.11, 3.12, CPython main branch

Operating systems tested on:

Linux

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    topic-XMLtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions