Home | History | Annotate | Download | only in tests
      1 #!/usr/bin/python -u
      2 import libxml2
      3 import libxml2mod
      4 import sys
      5 
      6 def error(msg, data):
      7     pass
      8 
      9 # Memory debug specific
     10 libxml2.debugMemory(1)
     11 
     12 dtd="""<!ELEMENT foo EMPTY>"""
     13 instance="""<?xml version="1.0"?>
     14 <foo></foo>"""
     15 
     16 dtd = libxml2.parseDTD(None, 'test.dtd')
     17 ctxt = libxml2.newValidCtxt()
     18 libxml2mod.xmlSetValidErrors(ctxt._o, error, error)
     19 doc = libxml2.parseDoc(instance)
     20 ret = doc.validateDtd(ctxt, dtd)
     21 if ret != 1:
     22     print("error doing DTD validation")
     23     sys.exit(1)
     24 
     25 doc.freeDoc()
     26 dtd.freeDtd()
     27 del dtd
     28 del ctxt
     29 
     30 # Memory debug specific
     31 libxml2.cleanupParser()
     32 if libxml2.debugMemory(1) == 0:
     33     print("OK")
     34 else:
     35     print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
     36     libxml2.dumpMemory()
     37