1#!/usr/bin/python -u 2import sys 3import libxml2 4import StringIO 5 6# Memory debug specific 7libxml2.debugMemory(1) 8 9def myResolver(URL, ID, ctxt): 10 return(StringIO.StringIO("<foo/>")) 11 12libxml2.setEntityLoader(myResolver) 13 14doc = libxml2.parseFile("doesnotexist.xml") 15root = doc.children 16if root.name != "foo": 17 print "root element name error" 18 sys.exit(1) 19doc.freeDoc() 20 21i = 0 22while i < 5000: 23 doc = libxml2.parseFile("doesnotexist.xml") 24 root = doc.children 25 if root.name != "foo": 26 print "root element name error" 27 sys.exit(1) 28 doc.freeDoc() 29 i = i + 1 30 31 32# Memory debug specific 33libxml2.cleanupParser() 34if libxml2.debugMemory(1) == 0: 35 print "OK" 36else: 37 print "Memory leak %d bytes" % (libxml2.debugMemory(1)) 38 libxml2.dumpMemory() 39 40