blob: 416e38429cac2c15795387a9ff426d97a8f9add6 [file] [log] [blame]
Daniel Veillarde6227e02003-01-14 11:42:39 +00001#!/usr/bin/python -u
2#
3# This test exercise the redirection of error messages with a
4# functions defined in Python.
5#
6import sys
7import libxml2
8
9# Memory debug specific
10libxml2.debugMemory(1)
11
Daniel Veillard417be3a2003-01-20 21:26:34 +000012expect="""--> (3) xmlns: URI foo is not absolute
Daniel Veillard6c5b2d32003-03-27 14:55:52 +000013--> (4) Opening and ending tag mismatch: x line 0 and y
Daniel Veillarde6227e02003-01-14 11:42:39 +000014"""
15
16err=""
Daniel Veillard417be3a2003-01-20 21:26:34 +000017def callback(arg,msg,severity,reserved):
18 global err
19 err = err + "%s (%d) %s" % (arg,severity,msg)
Daniel Veillarde6227e02003-01-14 11:42:39 +000020
Daniel Veillard417be3a2003-01-20 21:26:34 +000021s = """<x xmlns="foo"></y>"""
Daniel Veillarde6227e02003-01-14 11:42:39 +000022
23parserCtxt = libxml2.createPushParser(None,"",0,"test.xml")
Daniel Veillard417be3a2003-01-20 21:26:34 +000024parserCtxt.setErrorHandler(callback, "-->")
25if parserCtxt.getErrorHandler() != (callback,"-->"):
Daniel Veillard2cb6bf82013-03-30 21:38:20 +080026 print("getErrorHandler failed")
Daniel Veillard417be3a2003-01-20 21:26:34 +000027 sys.exit(1)
Daniel Veillarde6227e02003-01-14 11:42:39 +000028parserCtxt.parseChunk(s,len(s),1)
29doc = parserCtxt.doc()
30doc.freeDoc()
31parserCtxt = None
32
33if err != expect:
Daniel Veillard2cb6bf82013-03-30 21:38:20 +080034 print("error")
35 print("received %s" %(err))
36 print("expected %s" %(expect))
Daniel Veillarde6227e02003-01-14 11:42:39 +000037 sys.exit(1)
38
39i = 10000
40while i > 0:
41 parserCtxt = libxml2.createPushParser(None,"",0,"test.xml")
Daniel Veillard417be3a2003-01-20 21:26:34 +000042 parserCtxt.setErrorHandler(callback, "-->")
Daniel Veillarde6227e02003-01-14 11:42:39 +000043 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
51libxml2.cleanupParser()
52if libxml2.debugMemory(1) == 0:
Daniel Veillard2cb6bf82013-03-30 21:38:20 +080053 print("OK")
Daniel Veillarde6227e02003-01-14 11:42:39 +000054else:
Daniel Veillard2cb6bf82013-03-30 21:38:20 +080055 print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
Daniel Veillarde6227e02003-01-14 11:42:39 +000056 libxml2.dumpMemory()