change a small bit in the way valididy error messages get initialized
* parserInternals.c: change a small bit in the way valididy
error messages get initialized
* python/TODO python/libxml.c python/libxml2-python-api.xml
python/libxml2class.txt python/libxml_wrap.h python/types.c:
added some memory debugging to track leaks at the libxml2 level
* python/tests/*.py: changed all tests to check for leaks,
there is just one left in XPath extension registrations.
daniel
diff --git a/python/tests/error.py b/python/tests/error.py
index 21cf558..9337945 100755
--- a/python/tests/error.py
+++ b/python/tests/error.py
@@ -6,6 +6,9 @@
import sys
import libxml2
+# Memory debug specific
+libxml2.debugMemory(1)
+
expect='--> warning: --> failed to load external entity "missing.xml"\n'
err=""
def callback(ctx, str):
@@ -27,4 +30,10 @@
err = ""
i = i - 1
-print "OK"
+# Memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()
diff --git a/python/tests/push.py b/python/tests/push.py
index 738d3e9..5b60a16 100755
--- a/python/tests/push.py
+++ b/python/tests/push.py
@@ -2,6 +2,9 @@
import sys
import libxml2
+# Memory debug specific
+libxml2.debugMemory(1)
+
ctxt = libxml2.createPushParser(None, "<foo", 4, "test.xml")
ctxt.parseChunk("/>", 2, 1)
doc = ctxt.doc()
@@ -22,4 +25,11 @@
doc.freeDoc()
i = i -1
ctxt=None
-print "OK"
+
+# Memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()
diff --git a/python/tests/tst.py b/python/tests/tst.py
index dc6e4d4..9540cda 100755
--- a/python/tests/tst.py
+++ b/python/tests/tst.py
@@ -2,6 +2,9 @@
import sys
import libxml2
+# Memory debug specific
+libxml2.debugMemory(1)
+
doc = libxml2.parseFile("tst.xml")
if doc.name != "tst.xml":
print "doc.name failed"
@@ -15,4 +18,11 @@
print "child.name failed"
sys.exit(1)
doc.freeDoc()
-print "OK"
+
+# Memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()
diff --git a/python/tests/tstxpath.py b/python/tests/tstxpath.py
index 97d392c..9fc3d4c 100755
--- a/python/tests/tstxpath.py
+++ b/python/tests/tstxpath.py
@@ -2,6 +2,10 @@
import sys
import libxml2
+#memory debug specific
+libxml2.debugMemory(1)
+
+
def foo(x):
return x + 1
@@ -35,4 +39,12 @@
sys.exit(1)
i = i - 1
doc.freeDoc()
-print "OK"
+del ctxt
+
+#memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()
diff --git a/python/tests/validate.py b/python/tests/validate.py
index 5762f60..e9841a9 100755
--- a/python/tests/validate.py
+++ b/python/tests/validate.py
@@ -2,6 +2,9 @@
import sys
import libxml2
+# Memory debug specific
+libxml2.debugMemory(1)
+
ctxt = libxml2.createFileParserCtxt("valid.xml")
ctxt.validate(1)
ctxt.parseDocument()
@@ -68,5 +71,12 @@
print "validity check failed"
sys.exit(1)
i = i - 1
+del ctxt
-print "OK"
+# Memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()
diff --git a/python/tests/xpath.py b/python/tests/xpath.py
index 49a697f..0d35a99 100755
--- a/python/tests/xpath.py
+++ b/python/tests/xpath.py
@@ -6,6 +6,9 @@
import sys
import libxml2
+# Memory debug specific
+libxml2.debugMemory(1)
+
doc = libxml2.parseFile("tst.xml")
if doc.name != "tst.xml":
print "doc.name error"
@@ -27,4 +30,12 @@
res = ctxt.xpathEval("//*")
doc.freeDoc()
i = i -1
-print "OK"
+del ctxt
+
+# Memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()
diff --git a/python/tests/xpathext.py b/python/tests/xpathext.py
index 97d392c..14cb69f 100755
--- a/python/tests/xpathext.py
+++ b/python/tests/xpathext.py
@@ -2,6 +2,9 @@
import sys
import libxml2
+# Memory debug specific
+libxml2.debugMemory(1)
+
def foo(x):
return x + 1
@@ -35,4 +38,12 @@
sys.exit(1)
i = i - 1
doc.freeDoc()
-print "OK"
+del ctxt
+
+# Memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()