blob: ab8eb187c2ba2a4da9973d666287361b724501e3 [file] [log] [blame]
Daniel Veillard1aaae652003-01-17 10:48:04 +00001#!/usr/bin/python -u
2#
3# this tests the basic APIs of the XmlTextReader interface
4#
5import libxml2
6import StringIO
7import sys
8
9# Memory debug specific
10libxml2.debugMemory(1)
11
12expect="""--> (3) test1:1:xmlns: URI foo is not absolute
Daniel Veillard6c5b2d32003-03-27 14:55:52 +000013--> (4) test1:1:Opening and ending tag mismatch: c line 0 and a
Daniel Veillard1aaae652003-01-17 10:48:04 +000014"""
15err=""
Daniel Veillard417be3a2003-01-20 21:26:34 +000016def myErrorHandler(arg,msg,severity,locator):
Daniel Veillard1aaae652003-01-17 10:48:04 +000017 global err
Daniel Veillard417be3a2003-01-20 21:26:34 +000018 err = err + "%s (%d) %s:%d:%s" % (arg,severity,locator.BaseURI(),locator.LineNumber(),msg)
Daniel Veillard1aaae652003-01-17 10:48:04 +000019
20f = StringIO.StringIO("""<a xmlns="foo"><b b1="b1"/><c>content of c</a>""")
21input = libxml2.inputBuffer(f)
22reader = input.newTextReader("test1")
Daniel Veillard417be3a2003-01-20 21:26:34 +000023reader.SetErrorHandler(myErrorHandler,"-->")
Daniel Veillard1aaae652003-01-17 10:48:04 +000024while reader.Read() == 1:
25 pass
26
27if err != expect:
28 print "error"
29 print "received %s" %(err)
30 print "expected %s" %(expect)
31 sys.exit(1)
32
Daniel Veillard417be3a2003-01-20 21:26:34 +000033reader.SetErrorHandler(None,None)
34if reader.GetErrorHandler() != (None,None):
35 print "GetErrorHandler failed"
Daniel Veillard1aaae652003-01-17 10:48:04 +000036 sys.exit(1)
37
38#
39# cleanup for memory allocation counting
40#
41del f
42del input
43del reader
44
45# Memory debug specific
46libxml2.cleanupParser()
47if libxml2.debugMemory(1) == 0:
48 print "OK"
49else:
50 print "Memory leak %d bytes" % (libxml2.debugMemory(1))
51 libxml2.dumpMemory()