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