File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / python / tests / xpath.py
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 19:53:34 2014 UTC (10 years, 3 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, HEAD
libxml2 2.9.1

    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>