VirtualBox

source: vbox/trunk/src/libs/libxml2-2.9.2/python/tests/sync.py@ 58072

Last change on this file since 58072 was 58072, checked in by vboxsync, 9 years ago

libxml 2.9.2 unmodified

  • Property svn:eol-style set to LF
  • Property svn:executable set to *
File size: 3.8 KB
Line 
1#!/usr/bin/python -u
2import sys
3import libxml2
4
5# Memory debug specific
6libxml2.debugMemory(1)
7
8log = ""
9
10class 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
43handler = callback()
44
45log=""
46chunk="""<foo><bar2/>"""
47ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
48ctxt.parseChunk(chunk, len(chunk), 0)
49ctxt=None
50
51reference = "startDocument:startElement foo None:startElement bar2 None:endElement bar2:"
52if log != reference:
53 print("Error got: %s" % log)
54 print("Expected: %s" % reference)
55 sys.exit(1)
56
57log=""
58chunk="""<foo><bar2></bar2>"""
59ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
60ctxt.parseChunk(chunk, len(chunk), 0)
61ctxt=None
62
63reference = "startDocument:startElement foo None:startElement bar2 None:endElement bar2:"
64if log != reference:
65 print("Error got: %s" % log)
66 print("Expected: %s" % reference)
67 sys.exit(1)
68
69log=""
70chunk="""<foo><bar2>"""
71ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
72ctxt.parseChunk(chunk, len(chunk), 0)
73ctxt=None
74
75reference = "startDocument:startElement foo None:startElement bar2 None:"
76if log != reference:
77 print("Error got: %s" % log)
78 print("Expected: %s" % reference)
79 sys.exit(1)
80
81log=""
82chunk="""<foo><bar2 a="1" b='2' />"""
83ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
84ctxt.parseChunk(chunk, len(chunk), 0)
85ctxt=None
86
87reference1 = "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:endElement bar2:"
88reference2 = "startDocument:startElement foo None:startElement bar2 {'b': '2', 'a': '1'}:endElement bar2:"
89if log not in (reference1, reference2):
90 print("Error got: %s" % log)
91 print("Expected: %s" % reference)
92 sys.exit(1)
93
94log=""
95chunk="""<foo><bar2 a="1" b='2' >"""
96ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
97ctxt.parseChunk(chunk, len(chunk), 0)
98ctxt=None
99
100reference1 = "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:"
101reference2 = "startDocument:startElement foo None:startElement bar2 {'b': '2', 'a': '1'}:"
102if log not in (reference1, reference2):
103 print("Error got: %s" % log)
104 print("Expected: %s" % reference)
105 sys.exit(1)
106
107log=""
108chunk="""<foo><bar2 a="1" b='2' ></bar2>"""
109ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
110ctxt.parseChunk(chunk, len(chunk), 0)
111ctxt=None
112
113reference1 = "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:endElement bar2:"
114reference2 = "startDocument:startElement foo None:startElement bar2 {'b': '2', 'a': '1'}:endElement bar2:"
115if log not in (reference1, reference2):
116 print("Error got: %s" % log)
117 print("Expected: %s" % reference)
118 sys.exit(1)
119
120log=""
121chunk="""<foo><bar2 a="b='1' />"""
122ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
123ctxt.parseChunk(chunk, len(chunk), 0)
124ctxt=None
125
126reference = "startDocument:startElement foo None:"
127if log != reference:
128 print("Error got: %s" % log)
129 print("Expected: %s" % reference)
130 sys.exit(1)
131
132# Memory debug specific
133libxml2.cleanupParser()
134if libxml2.debugMemory(1) == 0:
135 print("OK")
136else:
137 print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
138 libxml2.dumpMemory()
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette