Annotation of embedaddon/libxml2/python/tests/xpath.py, revision 1.1
1.1 ! misho 1: #!/usr/bin/python -u
! 2: #
! 3: # this test exercise the XPath basic engine, parser, etc, and
! 4: # allows to detect memory leaks
! 5: #
! 6: import sys
! 7: import libxml2
! 8:
! 9: # Memory debug specific
! 10: libxml2.debugMemory(1)
! 11:
! 12: doc = libxml2.parseFile("tst.xml")
! 13: if doc.name != "tst.xml":
! 14: print "doc.name error"
! 15: sys.exit(1);
! 16:
! 17: ctxt = doc.xpathNewContext()
! 18: res = ctxt.xpathEval("//*")
! 19: if len(res) != 2:
! 20: print "xpath query: wrong node set size"
! 21: sys.exit(1)
! 22: if res[0].name != "doc" or res[1].name != "foo":
! 23: print "xpath query: wrong node set value"
! 24: sys.exit(1)
! 25: ctxt.setContextNode(res[0])
! 26: res = ctxt.xpathEval("foo")
! 27: if len(res) != 1:
! 28: print "xpath query: wrong node set size"
! 29: sys.exit(1)
! 30: if res[0].name != "foo":
! 31: print "xpath query: wrong node set value"
! 32: sys.exit(1)
! 33: doc.freeDoc()
! 34: ctxt.xpathFreeContext()
! 35: i = 1000
! 36: while i > 0:
! 37: doc = libxml2.parseFile("tst.xml")
! 38: ctxt = doc.xpathNewContext()
! 39: res = ctxt.xpathEval("//*")
! 40: doc.freeDoc()
! 41: ctxt.xpathFreeContext()
! 42: i = i -1
! 43: del ctxt
! 44:
! 45: # Memory debug specific
! 46: libxml2.cleanupParser()
! 47: if libxml2.debugMemory(1) == 0:
! 48: print "OK"
! 49: else:
! 50: print "Memory leak %d bytes" % (libxml2.debugMemory(1))
! 51: libxml2.dumpMemory()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>