1: #!/usr/bin/python -u
2: import sys
3: import libxml2
4:
5: # Memory debug specific
6: libxml2.debugMemory(1)
7:
8: log = ""
9:
10: class callback:
11: def startDocument(self):
12: global log
13: log = log + "startDocument:"
14:
15: def endDocument(self):
16: global log
17: log = log + "endDocument:"
18:
19: def startElement(self, tag, attrs):
20: global log
21: log = log + "startElement %s %s:" % (tag, attrs)
22:
23: def endElement(self, tag):
24: global log
25: log = log + "endElement %s:" % (tag)
26:
27: def characters(self, data):
28: global log
29: log = log + "characters: %s:" % (data)
30:
31: def warning(self, msg):
32: global log
33: log = log + "warning: %s:" % (msg)
34:
35: def error(self, msg):
36: global log
37: log = log + "error: %s:" % (msg)
38:
39: def fatalError(self, msg):
40: global log
41: log = log + "fatalError: %s:" % (msg)
42:
43: handler = callback()
44:
45: ctxt = libxml2.createPushParser(handler, "<foo", 4, "test.xml")
46: chunk = " url='tst'>b"
47: ctxt.parseChunk(chunk, len(chunk), 0)
48: chunk = "ar</foo>"
49: ctxt.parseChunk(chunk, len(chunk), 1)
50: ctxt=None
51:
52: reference = "startDocument:startElement foo {'url': 'tst'}:characters: bar:endElement foo:endDocument:"
53: if log != reference:
54: print("Error got: %s" % log)
55: print("Exprected: %s" % reference)
56: sys.exit(1)
57:
58: # Memory debug specific
59: libxml2.cleanupParser()
60: if libxml2.debugMemory(1) == 0:
61: print("OK")
62: else:
63: print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
64: libxml2.dumpMemory()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>