Home | History | Annotate | Download | only in tests
      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.htmlCreatePushParser(handler, "<foo", 4, "test.xml")
     46 chunk = " url='tst'>b"
     47 ctxt.htmlParseChunk(chunk, len(chunk), 0)
     48 chunk = "ar</foo>"
     49 ctxt.htmlParseChunk(chunk, len(chunk), 1)
     50 ctxt=None
     51 
     52 reference = """startDocument:startElement html None:startElement body None:startElement foo {'url': 'tst'}:error: Tag foo invalid
     53 :characters: bar:endElement foo:endElement body:endElement html:endDocument:"""
     54 if log != reference:
     55     print("Error got: %s" % log)
     56     print("Exprected: %s" % reference)
     57     sys.exit(1)
     58 
     59 # Memory debug specific
     60 libxml2.cleanupParser()
     61 if libxml2.debugMemory(1) == 0:
     62     print("OK")
     63 else:
     64     print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
     65     libxml2.dumpMemory()
     66