1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/usr/bin/python -u
- #
- # This test exercise the redirection of error messages with a
- # functions defined in Python.
- #
- import sys
- import libxml2
- # Memory debug specific
- libxml2.debugMemory(1)
- expect="""--> (3) xmlns: URI foo is not absolute
- --> (4) Opening and ending tag mismatch: x line 0 and y
- """
- err=""
- def callback(arg,msg,severity,reserved):
- global err
- err = err + "%s (%d) %s" % (arg,severity,msg)
- s = """<x xmlns="foo"></y>"""
- parserCtxt = libxml2.createPushParser(None,"",0,"test.xml")
- parserCtxt.setErrorHandler(callback, "-->")
- if parserCtxt.getErrorHandler() != (callback,"-->"):
- print "getErrorHandler failed"
- sys.exit(1)
- parserCtxt.parseChunk(s,len(s),1)
- doc = parserCtxt.doc()
- doc.freeDoc()
- parserCtxt = None
- if err != expect:
- print "error"
- print "received %s" %(err)
- print "expected %s" %(expect)
- sys.exit(1)
- i = 10000
- while i > 0:
- parserCtxt = libxml2.createPushParser(None,"",0,"test.xml")
- parserCtxt.setErrorHandler(callback, "-->")
- parserCtxt.parseChunk(s,len(s),1)
- doc = parserCtxt.doc()
- doc.freeDoc()
- parserCtxt = None
- err = ""
- i = i - 1
- # Memory debug specific
- libxml2.cleanupParser()
- if libxml2.debugMemory(1) == 0:
- print "OK"
- else:
- print "Memory leak %d bytes" % (libxml2.debugMemory(1))
- libxml2.dumpMemory()
|