mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-01-28 17:47:00 +03:00
198c1bfc1c
* Makefile.am configure.in xmldwalk.c xmlreader.c include/libxml/Makefile.am include/libxml/xmldwalk.h include/libxml/xmlversion.h.in: removing xmldwalk module since it got merged with the xmlreader. * parser.c: cleanup * win32/libxml2.def.src python/libxml2class.txt doc/libxml2-api.xml: rebuilt the API * python/tests/Makefile.am python/tests/reader7.py python/tests/walker.py: adding regression testing for the new xmlreader APIs, new APIs for reader creation, including makeing reader "walker" operating on preparsed document trees. Daniel
103 lines
1.7 KiB
Python
Executable File
103 lines
1.7 KiB
Python
Executable File
#!/usr/bin/python -u
|
|
#
|
|
# this tests the entities substitutions with the XmlTextReader interface
|
|
#
|
|
import sys
|
|
import StringIO
|
|
import libxml2
|
|
|
|
# Memory debug specific
|
|
libxml2.debugMemory(1)
|
|
|
|
result = ""
|
|
def processNode(reader):
|
|
global result
|
|
|
|
result = result + "%d %d %s %d\n" % (reader.Depth(), reader.NodeType(),
|
|
reader.Name(), reader.IsEmptyElement())
|
|
|
|
#
|
|
# Parse a document testing the readerForxxx API
|
|
#
|
|
docstr="""<foo>
|
|
<label>some text</label>
|
|
<item>100</item>
|
|
</foo>"""
|
|
expect="""0 1 foo 0
|
|
1 14 #text 0
|
|
1 1 label 0
|
|
2 3 #text 0
|
|
1 15 label 0
|
|
1 14 #text 0
|
|
1 1 item 0
|
|
2 3 #text 0
|
|
1 15 item 0
|
|
1 14 #text 0
|
|
0 15 foo 0
|
|
"""
|
|
result = ""
|
|
|
|
reader = libxml2.readerForDoc(docstr, "test1", None, 0)
|
|
ret = reader.Read()
|
|
while ret == 1:
|
|
processNode(reader)
|
|
ret = reader.Read()
|
|
|
|
if ret != 0:
|
|
print "Error parsing the document test1"
|
|
sys.exit(1)
|
|
|
|
if result != expect:
|
|
print "Unexpected result for test1"
|
|
print result
|
|
sys.exit(1)
|
|
|
|
#
|
|
# Reuse the reader for another document testing the ReaderNewxxx API
|
|
#
|
|
docstr="""<foo>
|
|
<label>some text</label>
|
|
<item>1000</item>
|
|
</foo>"""
|
|
expect="""0 1 foo 0
|
|
1 14 #text 0
|
|
1 1 label 0
|
|
2 3 #text 0
|
|
1 15 label 0
|
|
1 14 #text 0
|
|
1 1 item 0
|
|
2 3 #text 0
|
|
1 15 item 0
|
|
1 14 #text 0
|
|
0 15 foo 0
|
|
"""
|
|
result = ""
|
|
|
|
reader.NewDoc(docstr, "test2", None, 0)
|
|
ret = reader.Read()
|
|
while ret == 1:
|
|
processNode(reader)
|
|
ret = reader.Read()
|
|
|
|
if ret != 0:
|
|
print "Error parsing the document test2"
|
|
sys.exit(1)
|
|
|
|
if result != expect:
|
|
print "Unexpected result for test2"
|
|
print result
|
|
sys.exit(1)
|
|
|
|
#
|
|
# cleanup
|
|
#
|
|
del reader
|
|
|
|
# Memory debug specific
|
|
libxml2.cleanupParser()
|
|
if libxml2.debugMemory(1) == 0:
|
|
print "OK"
|
|
else:
|
|
print "Memory leak %d bytes" % (libxml2.debugMemory(1))
|
|
libxml2.dumpMemory()
|