home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / share / doc / python-libxml2 / examples / tstmem.py < prev    next >
Encoding:
Python Source  |  2005-03-01  |  717 b   |  37 lines

  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.