blob: 3a49b50a2571d97c7920ddd7139074f7e76d20b2 [file] [log] [blame]
Daniel Veillard336fc7d2002-12-27 19:37:04 +00001#!/usr/bin/python -u
2#
3# this tests the validation with the XmlTextReader interface
4#
5import sys
6import glob
7import string
8import libxml2
9
10# Memory debug specific
11libxml2.debugMemory(1)
12
13err=""
14expect="""../../test/valid/xlink.xml:450: validity error: ID dt-arc already defined
15 <p><termdef id="dt-arc" term="Arc">
16 ^
17../../test/valid/xlink.xml:529: validity error: attribute def line 199 references an unknown ID "dt-xlg"
18<?Pub *0000052575?>
19 ^
20../../test/valid/rss.xml:172: validity error: Element rss does not carry attribute version
21</rss>
22 ^
23"""
24def callback(ctx, str):
25 global err
26 err = err + "%s" % (str)
27libxml2.registerErrorHandler(callback, "")
28
29valid_files = files = glob.glob("../../test/valid/*.x*")
30for file in valid_files:
31 if string.find(file, "t8") != -1:
32 continue
33 reader = libxml2.newTextReaderFilename(file)
34 #print "%s:" % (file)
Daniel Veillardaba976d2002-12-28 21:14:18 +000035 reader.SetParserProp(libxml2.PARSER_VALIDATE, 1)
36 ret = reader.Read()
Daniel Veillard336fc7d2002-12-27 19:37:04 +000037 while ret == 1:
Daniel Veillardaba976d2002-12-28 21:14:18 +000038 ret = reader.Read()
Daniel Veillard336fc7d2002-12-27 19:37:04 +000039 if ret != 0:
40 print "Error parsing and validating %s" % (file)
41 #sys.exit(1)
42
43if err != expect:
44 print err
45
46del reader
47
48# Memory debug specific
49libxml2.cleanupParser()
50if libxml2.debugMemory(1) == 0:
51 print "OK"
52else:
53 print "Memory leak %d bytes" % (libxml2.debugMemory(1))
54 libxml2.dumpMemory()