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