2002-02-03 16:53:19 +00:00
#!/usr/bin/python -u
import sys
import libxml2
2002-02-03 20:13:06 +00:00
# Memory debug specific
libxml2 . debugMemory ( 1 )
2002-02-03 16:53:19 +00:00
ctxt = libxml2 . createFileParserCtxt ( " valid.xml " )
ctxt . validate ( 1 )
ctxt . parseDocument ( )
doc = ctxt . doc ( )
valid = ctxt . isValid ( )
if doc . name != " valid.xml " :
2013-03-30 21:38:20 +08:00
print ( " doc.name failed " )
2002-02-03 16:53:19 +00:00
sys . exit ( 1 )
root = doc . children
if root . name != " doc " :
2013-03-30 21:38:20 +08:00
print ( " root.name failed " )
2002-02-03 16:53:19 +00:00
sys . exit ( 1 )
if valid != 1 :
2013-03-30 21:38:20 +08:00
print ( " validity chec failed " )
2002-02-03 16:53:19 +00:00
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 :
2013-03-30 21:38:20 +08:00
print ( " validity check failed " )
2004-02-23 10:53:52 +00:00
sys . exit ( 1 )
2002-02-03 16:53:19 +00:00
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 " :
2013-03-30 21:38:20 +08:00
print ( " doc.name failed " )
2002-02-03 16:53:19 +00:00
sys . exit ( 1 )
root = doc . children
if root . name != " doc " :
2013-03-30 21:38:20 +08:00
print ( " root.name failed " )
2002-02-03 16:53:19 +00:00
sys . exit ( 1 )
if valid != 0 :
2013-03-30 21:38:20 +08:00
print ( " validity chec failed " )
2002-02-03 16:53:19 +00:00
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 :
2013-03-30 21:38:20 +08:00
print ( " validity check failed " )
2004-02-23 10:53:52 +00:00
sys . exit ( 1 )
2002-02-03 16:53:19 +00:00
i = i - 1
2002-02-03 20:13:06 +00:00
del ctxt
2002-02-03 16:53:19 +00:00
2002-02-03 20:13:06 +00:00
# Memory debug specific
libxml2 . cleanupParser ( )
if libxml2 . debugMemory ( 1 ) == 0 :
2013-03-30 21:38:20 +08:00
print ( " OK " )
2002-02-03 20:13:06 +00:00
else :
2013-03-30 21:38:20 +08:00
print ( " Memory leak %d bytes " % ( libxml2 . debugMemory ( 1 ) ) )
2002-02-03 20:13:06 +00:00
libxml2 . dumpMemory ( )