Edit

kc3-lang/libxml2/python/tests/xpathext.py

Branch :

  • Show log

    Commit

  • Author : Daniel Veillard
    Date : 2002-02-08 13:28:40
    Hash : c575b997
    Message : Changed to the MIT Licence updated the doc accordingly preparing 2.4.14 * Copyright Makefile.am README configure.in libxml.spec.in: Changed to the MIT Licence * doc/FAQ.html doc/catalog.html doc/intro.html doc/xml.html doc/xmlio.html: updated the doc accordingly * include/libxml/xmlwin32version.h configure.in: preparing 2.4.14 release * python/generator.py python/libxml.c python/libxml2-python-api.xml python/libxml2class.txt python/libxml_wrap.h python/types.c: fixed the const xmlChar * wrapper and generator, XPath extension functions now use the context as first argument * python/tests/tstxpath.py python/tests/xpath.py python/tests/xpathext.py: Updated the tests accordingly * tree.c: fixed bug #70067 Daniel

  • python/tests/xpathext.py
  • #!/usr/bin/python -u
    import sys
    import libxml2
    
    # Memory debug specific
    libxml2.debugMemory(1)
    
    def foo(ctx, x):
        return x + 1
    
    def bar(ctx, x):
        return "%d" % (x + 2)
    
    doc = libxml2.parseFile("tst.xml")
    ctxt = doc.xpathNewContext()
    res = ctxt.xpathEval("//*")
    if len(res) != 2:
        print "xpath query: wrong node set size"
        sys.exit(1)
    if res[0].name != "doc" or res[1].name != "foo":
        print "xpath query: wrong node set value"
        sys.exit(1)
    
    libxml2.registerXPathFunction(ctxt._o, "foo", None, foo)
    libxml2.registerXPathFunction(ctxt._o, "bar", None, bar)
    i = 10000
    while i > 0:
        res = ctxt.xpathEval("foo(1)")
        if res != 2:
            print "xpath extension failure"
    	sys.exit(1)
        i = i - 1
    i = 10000
    while i > 0:
        res = ctxt.xpathEval("bar(1)")
        if res != "3":
            print "xpath extension failure got %s expecting '3'"
    	sys.exit(1)
        i = i - 1
    doc.freeDoc()
    ctxt.xpathFreeContext()
    
    # Memory debug specific
    libxml2.cleanupParser()
    if libxml2.debugMemory(1) == 0:
        print "OK"
    else:
        print "Memory leak %d bytes" % (libxml2.debugMemory(1))
        libxml2.dumpMemory()