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