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