summaryrefslogtreecommitdiff
path: root/python/tests
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@src.gnome.org>2004-07-05 16:46:09 +0000
committerDaniel Veillard <veillard@src.gnome.org>2004-07-05 16:46:09 +0000
commiteb70f93ffaaf94163098f025ac146e4d8278ce92 (patch)
treee2e509ae78c7e3f0cd8ca161011da578e5ddae25 /python/tests
parentf4b05d0a228187af1dd43226ed46d9db59dd2585 (diff)
downloadlibxml2-eb70f93ffaaf94163098f025ac146e4d8278ce92.tar.gz
make the push interfaces synchronous added a specific test added the new
* parser.c: make the push interfaces synchronous * python/tests/sync.py: added a specific test * python/tests/Makefile.am doc/examples/Makefile.am doc/examples/index.py: added the new test, cleaning up "make tests" output Daniel
Diffstat (limited to 'python/tests')
-rw-r--r--python/tests/Makefile.am10
-rwxr-xr-xpython/tests/sync.py135
2 files changed, 143 insertions, 2 deletions
diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am
index bf048788..259a1bf5 100644
--- a/python/tests/Makefile.am
+++ b/python/tests/Makefile.am
@@ -33,6 +33,7 @@ PYTESTS= \
readererr.py\
relaxng.py \
thread2.py \
+ sync.py \
tstLastError.py \
indexes.py
@@ -45,8 +46,13 @@ EXTRA_DIST = $(PYTESTS) $(XMLS)
if WITH_PYTHON
tests: $(PYTESTS)
- -@(PYTHONPATH="..:../.libs:$(srcdir)/..:$$PYTHONPATH" ; export PYTHONPATH; \
- for test in $(PYTESTS) ; do echo "-- $$test" ; $(PYTHON) $(srcdir)/$$test ; done)
+ echo "## running Python regression tests"
+ -@(PYTHONPATH="..:../.libs:$(srcdir)/..:$$PYTHONPATH" ; \
+ export PYTHONPATH; \
+ for test in $(PYTESTS) ; \
+ do log=`$(PYTHON) $(srcdir)/$$test` ; \
+ if [ "`echo $$log | grep OK`" = "" ] ; then \
+ echo "-- $$test" ; echo "$$log" ; fi ; done)
else
tests:
endif
diff --git a/python/tests/sync.py b/python/tests/sync.py
new file mode 100755
index 00000000..2141875c
--- /dev/null
+++ b/python/tests/sync.py
@@ -0,0 +1,135 @@
+#!/usr/bin/python -u
+import sys
+import libxml2
+
+# Memory debug specific
+libxml2.debugMemory(1)
+
+log = ""
+
+class callback:
+ def startDocument(self):
+ global log
+ log = log + "startDocument:"
+
+ def endDocument(self):
+ global log
+ log = log + "endDocument:"
+
+ def startElement(self, tag, attrs):
+ global log
+ log = log + "startElement %s %s:" % (tag, attrs)
+
+ def endElement(self, tag):
+ global log
+ log = log + "endElement %s:" % (tag)
+
+ def characters(self, data):
+ global log
+ log = log + "characters: %s:" % (data)
+
+ def warning(self, msg):
+ global log
+ log = log + "warning: %s:" % (msg)
+
+ def error(self, msg):
+ global log
+ log = log + "error: %s:" % (msg)
+
+ def fatalError(self, msg):
+ global log
+ log = log + "fatalError: %s:" % (msg)
+
+handler = callback()
+
+log=""
+chunk="""<foo><bar2/>"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:startElement bar2 None:endElement bar2:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+log=""
+chunk="""<foo><bar2></bar2>"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:startElement bar2 None:endElement bar2:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+log=""
+chunk="""<foo><bar2>"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:startElement bar2 None:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+log=""
+chunk="""<foo><bar2 a="1" b='2' />"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:endElement bar2:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+log=""
+chunk="""<foo><bar2 a="1" b='2' >"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+log=""
+chunk="""<foo><bar2 a="1" b='2' ></bar2>"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:endElement bar2:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+log=""
+chunk="""<foo><bar2 a="b='1' />"""
+ctxt = libxml2.createPushParser(handler, None, 0, "test.xml")
+ctxt.parseChunk(chunk, len(chunk), 0)
+ctxt=None
+
+reference = "startDocument:startElement foo None:"
+if log != reference:
+ print "Error got: %s" % log
+ print "Exprected: %s" % reference
+ sys.exit(1)
+
+# Memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()