Annotation of embedaddon/libxml2/python/tests/indexes.py, revision 1.1
1.1 ! misho 1: #!/usr/bin/python -u
! 2: # -*- coding: ISO-8859-1 -*-
! 3: import sys
! 4: import libxml2
! 5:
! 6: # Memory debug specific
! 7: libxml2.debugMemory(1)
! 8:
! 9: ctxt = None
! 10:
! 11: class callback:
! 12: def __init__(self, startd, starte, ende, delta, endd):
! 13: self.startd = startd
! 14: self.starte = starte
! 15: self.ende = ende
! 16: self.endd = endd
! 17: self.delta = delta
! 18: self.count = 0
! 19:
! 20: def startDocument(self):
! 21: global ctxt
! 22: if ctxt.byteConsumed() != self.startd:
! 23: print "document start at wrong index: %d expecting %d\n" % (
! 24: ctxt.byteConsumed(), self.startd)
! 25: sys.exit(1)
! 26:
! 27: def endDocument(self):
! 28: global ctxt
! 29: expect = self.ende + self.delta * (self.count - 1) + self.endd
! 30: if ctxt.byteConsumed() != expect:
! 31: print "document end at wrong index: %d expecting %d\n" % (
! 32: ctxt.byteConsumed(), expect)
! 33: sys.exit(1)
! 34:
! 35: def startElement(self, tag, attrs):
! 36: global ctxt
! 37: if tag == "bar1":
! 38: expect = self.starte + self.delta * self.count
! 39: if ctxt.byteConsumed() != expect:
! 40: print "element start at wrong index: %d expecting %d\n" % (
! 41: ctxt.byteConsumed(), expect)
! 42: sys.exit(1)
! 43:
! 44:
! 45: def endElement(self, tag):
! 46: global ctxt
! 47: if tag == "bar1":
! 48: expect = self.ende + self.delta * self.count
! 49: if ctxt.byteConsumed() != expect:
! 50: print "element end at wrong index: %d expecting %d\n" % (
! 51: ctxt.byteConsumed(), expect)
! 52: sys.exit(1)
! 53: self.count = self.count + 1
! 54:
! 55: def characters(self, data):
! 56: pass
! 57:
! 58: #
! 59: # First run a pure UTF-8 test
! 60: #
! 61: handler = callback(0, 13, 27, 198, 183)
! 62: ctxt = libxml2.createPushParser(handler, "<foo>\n", 6, "test.xml")
! 63: chunk = """ <bar1>chars1</bar1>
! 64: <bar2>chars2</bar2>
! 65: <bar3>chars3</bar3>
! 66: <bar4>chars4</bar4>
! 67: <bar5>chars5</bar5>
! 68: <bar6><s6</bar6>
! 69: <bar7>chars7</bar7>
! 70: <bar8>&8</bar8>
! 71: <bar9>chars9</bar9>
! 72: """
! 73: i = 0
! 74: while i < 10000:
! 75: ctxt.parseChunk(chunk, len(chunk), 0)
! 76: i = i + 1
! 77: chunk = "</foo>"
! 78: ctxt.parseChunk(chunk, len(chunk), 1)
! 79: ctxt=None
! 80:
! 81: #
! 82: # Then run a test relying on ISO-Latin-1
! 83: #
! 84: handler = callback(43, 57, 71, 198, 183)
! 85: chunk="""<?xml version="1.0" encoding="ISO-8859-1"?>
! 86: <foo>
! 87: """
! 88: ctxt = libxml2.createPushParser(handler, chunk, len(chunk), "test.xml")
! 89: chunk = """ <bar1>chars1</bar1>
! 90: <bar2>chars2</bar2>
! 91: <bar3>chars3</bar3>
! 92: <bar4>chàrs4</bar4>
! 93: <bar5>chars5</bar5>
! 94: <bar6><s6</bar6>
! 95: <bar7>chars7</bar7>
! 96: <bar8>&8</bar8>
! 97: <bar9>très 9</bar9>
! 98: """
! 99: i = 0
! 100: while i < 10000:
! 101: ctxt.parseChunk(chunk, len(chunk), 0)
! 102: i = i + 1
! 103: chunk = "</foo>"
! 104: ctxt.parseChunk(chunk, len(chunk), 1)
! 105: ctxt=None
! 106:
! 107: # Memory debug specific
! 108: libxml2.cleanupParser()
! 109: if libxml2.debugMemory(1) == 0:
! 110: print "OK"
! 111: else:
! 112: print "Memory leak %d bytes" % (libxml2.debugMemory(1))
! 113: libxml2.dumpMemory()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>