diff options
Diffstat (limited to 'python/tests')
-rw-r--r-- | python/tests/Makefile.am | 3 | ||||
-rw-r--r-- | python/tests/Makefile.in | 6 | ||||
-rwxr-xr-x | python/tests/compareNodes.py | 50 |
3 files changed, 57 insertions, 2 deletions
diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am index 3571abf..39950f6 100644 --- a/python/tests/Makefile.am +++ b/python/tests/Makefile.am @@ -43,7 +43,8 @@ PYTESTS= \ tstmem.py \ validDTD.py \ validSchemas.py \ - validRNG.py + validRNG.py \ + compareNodes.py XMLS= \ tst.xml \ diff --git a/python/tests/Makefile.in b/python/tests/Makefile.in index 5b84cc2..bd49790 100644 --- a/python/tests/Makefile.in +++ b/python/tests/Makefile.in @@ -136,6 +136,7 @@ RDL_LIBS = @RDL_LIBS@ READER_TEST = @READER_TEST@ RELDATE = @RELDATE@ RM = @RM@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STATIC_BINARIES = @STATIC_BINARIES@ @@ -164,6 +165,7 @@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ U = @U@ VERSION = @VERSION@ +WGET = @WGET@ WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@ WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@ WITH_C14N = @WITH_C14N@ @@ -199,6 +201,7 @@ WITH_WRITER = @WITH_WRITER@ WITH_XINCLUDE = @WITH_XINCLUDE@ WITH_XPATH = @WITH_XPATH@ WITH_XPTR = @WITH_XPTR@ +WITH_ZLIB = @WITH_ZLIB@ XINCLUDE_OBJ = @XINCLUDE_OBJ@ XMLLINT = @XMLLINT@ XML_CFLAGS = @XML_CFLAGS@ @@ -302,7 +305,8 @@ PYTESTS = \ tstmem.py \ validDTD.py \ validSchemas.py \ - validRNG.py + validRNG.py \ + compareNodes.py XMLS = \ tst.xml \ diff --git a/python/tests/compareNodes.py b/python/tests/compareNodes.py new file mode 100755 index 0000000..ec04323 --- /dev/null +++ b/python/tests/compareNodes.py @@ -0,0 +1,50 @@ +#!/usr/bin/python -u +import sys +import libxml2 + +# Memory debug specific +libxml2.debugMemory(1) + +# +# Testing XML Node comparison and Node hash-value +# +doc = libxml2.parseDoc("""<root><foo/></root>""") +root = doc.getRootElement() + +# Create two different objects which point to foo +foonode1 = root.children +foonode2 = root.children + +# Now check that [in]equality tests work ok +if not ( foonode1 == foonode2 ): + print "Error comparing nodes with ==, nodes should be equal but are unequal" + sys.exit(1) +if not ( foonode1 != root ): + print "Error comparing nodes with ==, nodes should not be equal but are equal" + sys.exit(1) +if not ( foonode1 != root ): + print "Error comparing nodes with !=, nodes should not be equal but are equal" +if ( foonode1 != foonode2 ): + print "Error comparing nodes with !=, nodes should be equal but are unequal" + +# Next check that the hash function for the objects also works ok +if not (hash(foonode1) == hash(foonode2)): + print "Error hash values for two equal nodes are different" + sys.exit(1) +if not (hash(foonode1) != hash(root)): + print "Error hash values for two unequal nodes are not different" + sys.exit(1) +if hash(foonode1) == hash(root): + print "Error hash values for two unequal nodes are equal" + sys.exit(1) + +# Basic tests successful +doc.freeDoc() + +# Memory debug specific +libxml2.cleanupParser() +if libxml2.debugMemory(1) == 0: + print "OK" +else: + print "Memory leak %d bytes" % (libxml2.debugMemory(1)) + libxml2.dumpMemory() |