2002-02-03 19:53:19 +03:00
#!/usr/bin/python -u
import sys
import libxml2
2002-02-03 23:13:06 +03:00
# Memory debug specific
libxml2 . debugMemory ( 1 )
2002-02-03 19:53:19 +03:00
ctxt = libxml2 . createFileParserCtxt ( " valid.xml " )
ctxt . validate ( 1 )
ctxt . parseDocument ( )
doc = ctxt . doc ( )
valid = ctxt . isValid ( )
if doc . name != " valid.xml " :
print " doc.name failed "
sys . exit ( 1 )
root = doc . children
if root . name != " doc " :
print " root.name failed "
sys . exit ( 1 )
if valid != 1 :
print " validity chec failed "
sys . exit ( 1 )
doc . freeDoc ( )
i = 1000
while i > 0 :
ctxt = libxml2 . createFileParserCtxt ( " valid.xml " )
ctxt . validate ( 1 )
ctxt . parseDocument ( )
doc = ctxt . doc ( )
valid = ctxt . isValid ( )
doc . freeDoc ( )
if valid != 1 :
print " validity check failed "
sys . exit ( 1 )
i = i - 1
#desactivate error messages from the validation
def noerr ( ctx , str ) :
pass
libxml2 . registerErrorHandler ( noerr , None )
ctxt = libxml2 . createFileParserCtxt ( " invalid.xml " )
ctxt . validate ( 1 )
ctxt . parseDocument ( )
doc = ctxt . doc ( )
valid = ctxt . isValid ( )
if doc . name != " invalid.xml " :
print " doc.name failed "
sys . exit ( 1 )
root = doc . children
if root . name != " doc " :
print " root.name failed "
sys . exit ( 1 )
if valid != 0 :
print " validity chec failed "
sys . exit ( 1 )
doc . freeDoc ( )
i = 1000
while i > 0 :
ctxt = libxml2 . createFileParserCtxt ( " invalid.xml " )
ctxt . validate ( 1 )
ctxt . parseDocument ( )
doc = ctxt . doc ( )
valid = ctxt . isValid ( )
doc . freeDoc ( )
if valid != 0 :
print " validity check failed "
sys . exit ( 1 )
i = i - 1
2002-02-03 23:13:06 +03:00
del ctxt
2002-02-03 19:53:19 +03:00
2002-02-03 23:13:06 +03:00
# Memory debug specific
libxml2 . cleanupParser ( )
if libxml2 . debugMemory ( 1 ) == 0 :
print " OK "
else :
print " Memory leak %d bytes " % ( libxml2 . debugMemory ( 1 ) )
libxml2 . dumpMemory ( )