summaryrefslogtreecommitdiff
path: root/python/tests/ctxterror.py
diff options
context:
space:
mode:
authorMike Hommey <mh@glandium.org>2004-03-25 06:59:32 +0000
committerMike Hommey <mh@glandium.org>2004-03-25 06:59:32 +0000
commitd09ab089457ae3c20cc98f9afa03379c6ebf9598 (patch)
treef34702d634972abbc1b478a4529149b548a1cd4c /python/tests/ctxterror.py
downloadlibxml2-upstream/2.6.8.tar.gz
[svn-inject] Installing original source versionupstream/2.6.8
Diffstat (limited to 'python/tests/ctxterror.py')
-rwxr-xr-xpython/tests/ctxterror.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/python/tests/ctxterror.py b/python/tests/ctxterror.py
new file mode 100755
index 0000000..f2a897a
--- /dev/null
+++ b/python/tests/ctxterror.py
@@ -0,0 +1,56 @@
+#!/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()