Annotation of embedaddon/libxml2/python/tests/xpathext.py, revision 1.1.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>