2022-12-06 21:40:01 +00:00
#!/usr/bin/env python3
2002-05-13 10:33:30 +00:00
import sys
2023-08-15 12:49:27 +02:00
import setup_test
2002-05-13 10:33:30 +00:00
import libxml2
# Memory debug specific
libxml2 . debugMemory ( 1 )
log = " "
class callback :
def startDocument ( self ) :
global log
log = log + " startDocument: "
def endDocument ( self ) :
global log
log = log + " endDocument: "
def startElement ( self , tag , attrs ) :
global log
log = log + " startElement %s %s : " % ( tag , attrs )
def endElement ( self , tag ) :
global log
log = log + " endElement %s : " % ( tag )
def characters ( self , data ) :
global log
log = log + " characters: %s : " % ( data )
def warning ( self , msg ) :
global log
log = log + " warning: %s : " % ( msg )
def error ( self , msg ) :
global log
log = log + " error: %s : " % ( msg )
def fatalError ( self , msg ) :
global log
log = log + " fatalError: %s : " % ( msg )
handler = callback ( )
ctxt = libxml2 . htmlCreatePushParser ( handler , " <foo " , 4 , " test.xml " )
chunk = " url= ' tst ' >b "
ctxt . htmlParseChunk ( chunk , len ( chunk ) , 0 )
chunk = " ar</foo> "
ctxt . htmlParseChunk ( chunk , len ( chunk ) , 1 )
ctxt = None
2002-09-12 15:00:57 +00:00
reference = """ startDocument:startElement html None:startElement body None:startElement foo { ' url ' : ' tst ' }:error: Tag foo invalid
: characters : bar : endElement foo : endElement body : endElement html : endDocument : """
2002-05-13 10:33:30 +00:00
if log != reference :
2013-03-30 21:38:20 +08:00
print ( " Error got: %s " % log )
print ( " Exprected: %s " % reference )
2002-05-13 10:33:30 +00:00
sys . exit ( 1 )
# Memory debug specific
libxml2 . cleanupParser ( )
if libxml2 . debugMemory ( 1 ) == 0 :
2013-03-30 21:38:20 +08:00
print ( " OK " )
2002-05-13 10:33:30 +00:00
else :
2013-03-30 21:38:20 +08:00
print ( " Memory leak %d bytes " % ( libxml2 . debugMemory ( 1 ) ) )