<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">#!/usr/bin/python -u
#
# This test exercise the redirection of error messages with a
# functions defined in Python.
#
import sys
import libxml2

# Memory debug specific
libxml2.debugMemory(1)

expect='--&gt; warning: --&gt; failed to load external entity "missing.xml"\n'
err=""
def callback(ctx, str):
     global err

     err = err + "%s %s" % (ctx, str)

got_exc = 0
libxml2.registerErrorHandler(callback, "--&gt;")
try:
    doc = libxml2.parseFile("missing.xml")
except libxml2.parserError:
    got_exc = 1

if got_exc == 0:
    print "Failed to get a parser exception"
    sys.exit(1)

if err != expect:
    print "error"
    print "received %s" %(err)
    print "expected %s" %(expect)
    sys.exit(1)

i = 10000
while i &gt; 0:
    try:
	doc = libxml2.parseFile("missing.xml")
    except libxml2.parserError:
	got_exc = 1
    err = ""
    i = i - 1

# Memory debug specific
libxml2.cleanupParser()
if libxml2.debugMemory(1) == 0:
    print "OK"
else:
    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
    libxml2.dumpMemory()
</pre></body></html>