Home | History | Annotate | Download | only in tests
      1 #!/usr/bin/python -u
      2 #
      3 # This test exercise the redirection of error messages with a
      4 # functions defined in Python.
      5 #
      6 import sys
      7 import libxml2
      8 
      9 # Memory debug specific
     10 libxml2.debugMemory(1)
     11 
     12 expect='--> I/O --> warning : --> failed to load external entity "missing.xml"\n'
     13 err=""
     14 def callback(ctx, str):
     15      global err
     16 
     17      err = err + "%s %s" % (ctx, str)
     18 
     19 got_exc = 0
     20 libxml2.registerErrorHandler(callback, "-->")
     21 try:
     22     doc = libxml2.parseFile("missing.xml")
     23 except libxml2.parserError:
     24     got_exc = 1
     25 
     26 if got_exc == 0:
     27     print("Failed to get a parser exception")
     28     sys.exit(1)
     29 
     30 if err != expect:
     31     print("error")
     32     print("received %s" %(err))
     33     print("expected %s" %(expect))
     34     sys.exit(1)
     35 
     36 i = 10000
     37 while i > 0:
     38     try:
     39         doc = libxml2.parseFile("missing.xml")
     40     except libxml2.parserError:
     41         got_exc = 1
     42     err = ""
     43     i = i - 1
     44 
     45 # Memory debug specific
     46 libxml2.cleanupParser()
     47 if libxml2.debugMemory(1) == 0:
     48     print("OK")
     49 else:
     50     print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
     51     libxml2.dumpMemory()
     52