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