Annotation of embedaddon/libxml2/python/tests/sync.py, revision 1.1.1.1

1.1       misho       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: log=""
                     46: chunk="""<foo><bar2/>"""
                     47: ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
                     48: ctxt.parseChunk(chunk, len(chunk), 0)
                     49: ctxt=None
                     50: 
                     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)
                     56: 
                     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
                     62: 
                     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)
                     68: 
                     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
                     74: 
                     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)
                     80: 
                     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
                     86: 
                     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)
                     92: 
                     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
                     98: 
                     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)
                    104: 
                    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
                    110: 
                    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)
                    116: 
                    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
                    122: 
                    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)
                    128: 
                    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()

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>