Return to xpath.py CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / python / tests |
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()