| #!/usr/bin/python -u |
| import sys |
| import libxml2 |
| |
| # Memory debug specific |
| libxml2.debugMemory(1) |
| |
| ctxt = libxml2.createFileParserCtxt("valid.xml") |
| ctxt.validate(1) |
| ctxt.parseDocument() |
| doc = ctxt.doc() |
| valid = ctxt.isValid() |
| |
| if doc.name != "valid.xml": |
| print("doc.name failed") |
| sys.exit(1) |
| root = doc.children |
| if root.name != "doc": |
| print("root.name failed") |
| sys.exit(1) |
| if valid != 1: |
| print("validity chec failed") |
| sys.exit(1) |
| doc.freeDoc() |
| |
| i = 1000 |
| while i > 0: |
| ctxt = libxml2.createFileParserCtxt("valid.xml") |
| ctxt.validate(1) |
| ctxt.parseDocument() |
| doc = ctxt.doc() |
| valid = ctxt.isValid() |
| doc.freeDoc() |
| if valid != 1: |
| print("validity check failed") |
| sys.exit(1) |
| i = i - 1 |
| |
| #desactivate error messages from the validation |
| def noerr(ctx, str): |
| pass |
| |
| libxml2.registerErrorHandler(noerr, None) |
| |
| ctxt = libxml2.createFileParserCtxt("invalid.xml") |
| ctxt.validate(1) |
| ctxt.parseDocument() |
| doc = ctxt.doc() |
| valid = ctxt.isValid() |
| if doc.name != "invalid.xml": |
| print("doc.name failed") |
| sys.exit(1) |
| root = doc.children |
| if root.name != "doc": |
| print("root.name failed") |
| sys.exit(1) |
| if valid != 0: |
| print("validity chec failed") |
| sys.exit(1) |
| doc.freeDoc() |
| |
| i = 1000 |
| while i > 0: |
| ctxt = libxml2.createFileParserCtxt("invalid.xml") |
| ctxt.validate(1) |
| ctxt.parseDocument() |
| doc = ctxt.doc() |
| valid = ctxt.isValid() |
| doc.freeDoc() |
| if valid != 0: |
| print("validity check failed") |
| sys.exit(1) |
| i = i - 1 |
| 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() |