You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.2 KiB
51 lines
1.2 KiB
#!/usr/bin/python -u
|
|
#
|
|
# this tests the basic APIs of the XmlTextReader interface
|
|
#
|
|
import libxml2
|
|
import sys
|
|
try:
|
|
import StringIO
|
|
str_io = StringIO.StringIO
|
|
except:
|
|
import io
|
|
str_io = io.StringIO
|
|
|
|
# Memory debug specific
|
|
libxml2.debugMemory(1)
|
|
|
|
def tst_reader(s):
|
|
f = str_io(s)
|
|
input = libxml2.inputBuffer(f)
|
|
reader = input.newTextReader("tst")
|
|
res = ""
|
|
while reader.Read():
|
|
res=res + "%s (%s) [%s] %d\n" % (reader.NodeType(),reader.Name(),
|
|
reader.Value(), reader.IsEmptyElement())
|
|
if reader.NodeType() == 1: # Element
|
|
while reader.MoveToNextAttribute():
|
|
res = res + "-- %s (%s) [%s]\n" % (reader.NodeType(),
|
|
reader.Name(),reader.Value())
|
|
return res
|
|
|
|
expect="""1 (test) [None] 0
|
|
1 (b) [None] 1
|
|
1 (c) [None] 1
|
|
15 (test) [None] 0
|
|
"""
|
|
|
|
res = tst_reader("""<test><b/><c/></test>""")
|
|
|
|
if res != expect:
|
|
print("Did not get the expected error message:")
|
|
print(res)
|
|
sys.exit(1)
|
|
|
|
# Memory debug specific
|
|
libxml2.cleanupParser()
|
|
if libxml2.debugMemory(1) == 0:
|
|
print("OK")
|
|
else:
|
|
print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
|
|
libxml2.dumpMemory()
|