diff --git a/python/tests/readererr.py b/python/tests/readererr.py new file mode 100644 index 00000000..abbbba55 --- /dev/null +++ b/python/tests/readererr.py @@ -0,0 +1,51 @@ +#!/usr/bin/python -u +# +# this tests the basic APIs of the XmlTextReader interface +# +import libxml2 +import StringIO +import sys + +# Memory debug specific +libxml2.debugMemory(1) + +expect="""--> (3) test1:1:xmlns: URI foo is not absolute +--> (4) test1:1:Opening and ending tag mismatch: c and a +""" +err="" +def myErrorHandler(arg,msg,line,col,URI,severity): + global err + err = err + "%s (%d) %s:%d:%s" % (arg,severity,URI,line,msg) + +f = StringIO.StringIO("""content of c""") +input = libxml2.inputBuffer(f) +reader = input.newTextReader("test1") +reader.setErrorHandler(myErrorHandler,"-->") +while reader.Read() == 1: + pass + +if err != expect: + print "error" + print "received %s" %(err) + print "expected %s" %(expect) + sys.exit(1) + +reader.setErrorHandler(None,None) +if reader.getErrorHandler() != (None,None): + print "getErrorHandler failed" + sys.exit(1) + +# +# cleanup for memory allocation counting +# +del f +del input +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()