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