libxml2 2.9.1 clean sources
[tomato.git] / release / src / router / libxml2 / python / tests / sync.py
blob9d565db686c62244f1d4d2fe8a64921b9ead3dff
1 #!/usr/bin/python -u
2 import sys
3 import libxml2
5 # Memory debug specific
6 libxml2.debugMemory(1)
8 log = ""
10 class callback:
11 def startDocument(self):
12 global log
13 log = log + "startDocument:"
15 def endDocument(self):
16 global log
17 log = log + "endDocument:"
19 def startElement(self, tag, attrs):
20 global log
21 log = log + "startElement %s %s:" % (tag, attrs)
23 def endElement(self, tag):
24 global log
25 log = log + "endElement %s:" % (tag)
27 def characters(self, data):
28 global log
29 log = log + "characters: %s:" % (data)
31 def warning(self, msg):
32 global log
33 log = log + "warning: %s:" % (msg)
35 def error(self, msg):
36 global log
37 log = log + "error: %s:" % (msg)
39 def fatalError(self, msg):
40 global log
41 log = log + "fatalError: %s:" % (msg)
43 handler = callback()
45 log=""
46 chunk="""<foo><bar2/>"""
47 ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
48 ctxt.parseChunk(chunk, len(chunk), 0)
49 ctxt=None
51 reference = "startDocument:startElement foo None:startElement bar2 None:endElement bar2:"
52 if log != reference:
53 print("Error got: %s" % log)
54 print("Exprected: %s" % reference)
55 sys.exit(1)
57 log=""
58 chunk="""<foo><bar2></bar2>"""
59 ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
60 ctxt.parseChunk(chunk, len(chunk), 0)
61 ctxt=None
63 reference = "startDocument:startElement foo None:startElement bar2 None:endElement bar2:"
64 if log != reference:
65 print("Error got: %s" % log)
66 print("Exprected: %s" % reference)
67 sys.exit(1)
69 log=""
70 chunk="""<foo><bar2>"""
71 ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
72 ctxt.parseChunk(chunk, len(chunk), 0)
73 ctxt=None
75 reference = "startDocument:startElement foo None:startElement bar2 None:"
76 if log != reference:
77 print("Error got: %s" % log)
78 print("Exprected: %s" % reference)
79 sys.exit(1)
81 log=""
82 chunk="""<foo><bar2 a="1" b='2' />"""
83 ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
84 ctxt.parseChunk(chunk, len(chunk), 0)
85 ctxt=None
87 reference = "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:endElement bar2:"
88 if log != reference:
89 print("Error got: %s" % log)
90 print("Exprected: %s" % reference)
91 sys.exit(1)
93 log=""
94 chunk="""<foo><bar2 a="1" b='2' >"""
95 ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
96 ctxt.parseChunk(chunk, len(chunk), 0)
97 ctxt=None
99 reference = "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:"
100 if log != reference:
101 print("Error got: %s" % log)
102 print("Exprected: %s" % reference)
103 sys.exit(1)
105 log=""
106 chunk="""<foo><bar2 a="1" b='2' ></bar2>"""
107 ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
108 ctxt.parseChunk(chunk, len(chunk), 0)
109 ctxt=None
111 reference = "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:endElement bar2:"
112 if log != reference:
113 print("Error got: %s" % log)
114 print("Exprected: %s" % reference)
115 sys.exit(1)
117 log=""
118 chunk="""<foo><bar2 a="b='1' />"""
119 ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
120 ctxt.parseChunk(chunk, len(chunk), 0)
121 ctxt=None
123 reference = "startDocument:startElement foo None:"
124 if log != reference:
125 print("Error got: %s" % log)
126 print("Exprected: %s" % reference)
127 sys.exit(1)
129 # Memory debug specific
130 libxml2.cleanupParser()
131 if libxml2.debugMemory(1) == 0:
132 print("OK")
133 else:
134 print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
135 libxml2.dumpMemory()