version 1.1.1.1, 2012/02/21 23:38:00
|
version 1.1.1.2, 2014/06/15 19:53:34
|
Line 5
|
Line 5
|
import sys |
import sys |
import glob |
import glob |
import string |
import string |
import StringIO |
|
import libxml2 |
import libxml2 |
|
try: |
|
import StringIO |
|
str_io = StringIO.StringIO |
|
except: |
|
import io |
|
str_io = io.StringIO |
|
|
# Memory debug specific |
# Memory debug specific |
libxml2.debugMemory(1) |
libxml2.debugMemory(1) |
Line 30 libxml2.registerErrorHandler(callback, "")
|
Line 35 libxml2.registerErrorHandler(callback, "")
|
valid_files = glob.glob("../../test/valid/*.x*") |
valid_files = glob.glob("../../test/valid/*.x*") |
valid_files.sort() |
valid_files.sort() |
for file in valid_files: |
for file in valid_files: |
if string.find(file, "t8") != -1: | if file.find("t8") != -1: |
continue |
continue |
|
if file == "../../test/valid/rss.xml": |
|
continue |
|
if file == "../../test/valid/xlink.xml": |
|
continue |
reader = libxml2.newTextReaderFilename(file) |
reader = libxml2.newTextReaderFilename(file) |
#print "%s:" % (file) |
#print "%s:" % (file) |
reader.SetParserProp(libxml2.PARSER_VALIDATE, 1) |
reader.SetParserProp(libxml2.PARSER_VALIDATE, 1) |
Line 39 for file in valid_files:
|
Line 48 for file in valid_files:
|
while ret == 1: |
while ret == 1: |
ret = reader.Read() |
ret = reader.Read() |
if ret != 0: |
if ret != 0: |
print "Error parsing and validating %s" % (file) | print("Error parsing and validating %s" % (file)) |
#sys.exit(1) |
#sys.exit(1) |
|
|
if err != expect: |
if err != expect: |
print err | print(err) |
|
|
# |
# |
# another separate test based on Stephane Bidoul one |
# another separate test based on Stephane Bidoul one |
Line 79 expect="""10,test
|
Line 88 expect="""10,test
|
res="" |
res="" |
err="" |
err="" |
|
|
input = libxml2.inputBuffer(StringIO.StringIO(s)) | input = libxml2.inputBuffer(str_io(s)) |
reader = input.newTextReader("test2") |
reader = input.newTextReader("test2") |
reader.SetParserProp(libxml2.PARSER_LOADDTD,1) |
reader.SetParserProp(libxml2.PARSER_LOADDTD,1) |
reader.SetParserProp(libxml2.PARSER_DEFAULTATTRS,1) |
reader.SetParserProp(libxml2.PARSER_DEFAULTATTRS,1) |
Line 89 while reader.Read() == 1:
|
Line 98 while reader.Read() == 1:
|
res = res + "%s,%s\n" % (reader.NodeType(),reader.Name()) |
res = res + "%s,%s\n" % (reader.NodeType(),reader.Name()) |
|
|
if res != expect: |
if res != expect: |
print "test2 failed: unexpected output" | print("test2 failed: unexpected output") |
print res | print(res) |
sys.exit(1) |
sys.exit(1) |
if err != "": |
if err != "": |
print "test2 failed: validation error found" | print("test2 failed: validation error found") |
print err | print(err) |
sys.exit(1) |
sys.exit(1) |
|
|
# |
# |
Line 124 res=""
|
Line 133 res=""
|
|
|
def myResolver(URL, ID, ctxt): |
def myResolver(URL, ID, ctxt): |
if URL == "tst.ent": |
if URL == "tst.ent": |
return(StringIO.StringIO(tst_ent)) | return(str_io(tst_ent)) |
return None |
return None |
|
|
libxml2.setEntityLoader(myResolver) |
libxml2.setEntityLoader(myResolver) |
|
|
input = libxml2.inputBuffer(StringIO.StringIO(s)) | input = libxml2.inputBuffer(str_io(s)) |
reader = input.newTextReader("test3") |
reader = input.newTextReader("test3") |
reader.SetParserProp(libxml2.PARSER_LOADDTD,1) |
reader.SetParserProp(libxml2.PARSER_LOADDTD,1) |
reader.SetParserProp(libxml2.PARSER_DEFAULTATTRS,1) |
reader.SetParserProp(libxml2.PARSER_DEFAULTATTRS,1) |
Line 139 while reader.Read() == 1:
|
Line 148 while reader.Read() == 1:
|
res = res + "%s %s\n" % (reader.NodeType(),reader.Name()) |
res = res + "%s %s\n" % (reader.NodeType(),reader.Name()) |
|
|
if res != expect: |
if res != expect: |
print "test3 failed: unexpected output" | print("test3 failed: unexpected output") |
print res | print(res) |
sys.exit(1) |
sys.exit(1) |
if err != "": |
if err != "": |
print "test3 failed: validation error found" | print("test3 failed: validation error found") |
print err | print(err) |
sys.exit(1) |
sys.exit(1) |
|
|
# |
# |
Line 183 expect="""10 test 0
|
Line 192 expect="""10 test 0
|
res="" |
res="" |
err="" |
err="" |
|
|
input = libxml2.inputBuffer(StringIO.StringIO(s)) | input = libxml2.inputBuffer(str_io(s)) |
reader = input.newTextReader("test4") |
reader = input.newTextReader("test4") |
reader.SetParserProp(libxml2.PARSER_LOADDTD,1) |
reader.SetParserProp(libxml2.PARSER_LOADDTD,1) |
reader.SetParserProp(libxml2.PARSER_DEFAULTATTRS,1) |
reader.SetParserProp(libxml2.PARSER_DEFAULTATTRS,1) |
Line 193 while reader.Read() == 1:
|
Line 202 while reader.Read() == 1:
|
res = res + "%s %s %d\n" % (reader.NodeType(),reader.Name(),reader.Depth()) |
res = res + "%s %s %d\n" % (reader.NodeType(),reader.Name(),reader.Depth()) |
|
|
if res != expect: |
if res != expect: |
print "test4 failed: unexpected output" | print("test4 failed: unexpected output") |
print res | print(res) |
sys.exit(1) |
sys.exit(1) |
if err != "": |
if err != "": |
print "test4 failed: validation error found" | print("test4 failed: validation error found") |
print err | print(err) |
sys.exit(1) |
sys.exit(1) |
|
|
# |
# |
Line 228 expect="""10 test 0
|
Line 237 expect="""10 test 0
|
res="" |
res="" |
err="" |
err="" |
|
|
input = libxml2.inputBuffer(StringIO.StringIO(s)) | input = libxml2.inputBuffer(str_io(s)) |
reader = input.newTextReader("test5") |
reader = input.newTextReader("test5") |
reader.SetParserProp(libxml2.PARSER_VALIDATE,1) |
reader.SetParserProp(libxml2.PARSER_VALIDATE,1) |
while reader.Read() == 1: |
while reader.Read() == 1: |
res = res + "%s %s %d\n" % (reader.NodeType(),reader.Name(),reader.Depth()) |
res = res + "%s %s %d\n" % (reader.NodeType(),reader.Name(),reader.Depth()) |
|
|
if res != expect: |
if res != expect: |
print "test5 failed: unexpected output" | print("test5 failed: unexpected output") |
print res | print(res) |
if err != "": |
if err != "": |
print "test5 failed: validation error found" | print("test5 failed: validation error found") |
print err | print(err) |
|
|
# |
# |
# cleanup |
# cleanup |
Line 250 del reader
|
Line 259 del reader
|
# Memory debug specific |
# Memory debug specific |
libxml2.cleanupParser() |
libxml2.cleanupParser() |
if libxml2.debugMemory(1) == 0: |
if libxml2.debugMemory(1) == 0: |
print "OK" | print("OK") |
else: |
else: |
print "Memory leak %d bytes" % (libxml2.debugMemory(1)) | print("Memory leak %d bytes" % (libxml2.debugMemory(1))) |
libxml2.dumpMemory() |
libxml2.dumpMemory() |