Annotation of embedaddon/libxml2/python/tests/xpathext.py, revision 1.1

1.1     ! misho       1: #!/usr/bin/python -u
        !             2: import sys
        !             3: import libxml2
        !             4: 
        !             5: # Memory debug specific
        !             6: libxml2.debugMemory(1)
        !             7: 
        !             8: def foo(ctx, x):
        !             9:     return x + 1
        !            10: 
        !            11: def bar(ctx, x):
        !            12:     return "%d" % (x + 2)
        !            13: 
        !            14: doc = libxml2.parseFile("tst.xml")
        !            15: ctxt = doc.xpathNewContext()
        !            16: res = ctxt.xpathEval("//*")
        !            17: if len(res) != 2:
        !            18:     print "xpath query: wrong node set size"
        !            19:     sys.exit(1)
        !            20: if res[0].name != "doc" or res[1].name != "foo":
        !            21:     print "xpath query: wrong node set value"
        !            22:     sys.exit(1)
        !            23: 
        !            24: libxml2.registerXPathFunction(ctxt._o, "foo", None, foo)
        !            25: libxml2.registerXPathFunction(ctxt._o, "bar", None, bar)
        !            26: i = 10000
        !            27: while i > 0:
        !            28:     res = ctxt.xpathEval("foo(1)")
        !            29:     if res != 2:
        !            30:         print "xpath extension failure"
        !            31:         sys.exit(1)
        !            32:     i = i - 1
        !            33: i = 10000
        !            34: while i > 0:
        !            35:     res = ctxt.xpathEval("bar(1)")
        !            36:     if res != "3":
        !            37:         print "xpath extension failure got %s expecting '3'"
        !            38:         sys.exit(1)
        !            39:     i = i - 1
        !            40: doc.freeDoc()
        !            41: ctxt.xpathFreeContext()
        !            42: 
        !            43: # Memory debug specific
        !            44: libxml2.cleanupParser()
        !            45: if libxml2.debugMemory(1) == 0:
        !            46:     print "OK"
        !            47: else:
        !            48:     print "Memory leak %d bytes" % (libxml2.debugMemory(1))
        !            49:     libxml2.dumpMemory()

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>