Annotation of embedaddon/libxml2/python/tests/ctxterror.py, revision 1.1.1.1
1.1 misho 1: #!/usr/bin/python -u
2: #
3: # This test exercise the redirection of error messages with a
4: # functions defined in Python.
5: #
6: import sys
7: import libxml2
8:
9: # Memory debug specific
10: libxml2.debugMemory(1)
11:
12: expect="""--> (3) xmlns: URI foo is not absolute
13: --> (4) Opening and ending tag mismatch: x line 0 and y
14: """
15:
16: err=""
17: def callback(arg,msg,severity,reserved):
18: global err
19: err = err + "%s (%d) %s" % (arg,severity,msg)
20:
21: s = """<x xmlns="foo"></y>"""
22:
23: parserCtxt = libxml2.createPushParser(None,"",0,"test.xml")
24: parserCtxt.setErrorHandler(callback, "-->")
25: if parserCtxt.getErrorHandler() != (callback,"-->"):
26: print "getErrorHandler failed"
27: sys.exit(1)
28: parserCtxt.parseChunk(s,len(s),1)
29: doc = parserCtxt.doc()
30: doc.freeDoc()
31: parserCtxt = None
32:
33: if err != expect:
34: print "error"
35: print "received %s" %(err)
36: print "expected %s" %(expect)
37: sys.exit(1)
38:
39: i = 10000
40: while i > 0:
41: parserCtxt = libxml2.createPushParser(None,"",0,"test.xml")
42: parserCtxt.setErrorHandler(callback, "-->")
43: parserCtxt.parseChunk(s,len(s),1)
44: doc = parserCtxt.doc()
45: doc.freeDoc()
46: parserCtxt = None
47: err = ""
48: i = i - 1
49:
50: # Memory debug specific
51: libxml2.cleanupParser()
52: if libxml2.debugMemory(1) == 0:
53: print "OK"
54: else:
55: print "Memory leak %d bytes" % (libxml2.debugMemory(1))
56: libxml2.dumpMemory()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>