xref: /aosp_15_r20/external/libxml2/python/tests/dtdvalid.py (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker#!/usr/bin/env python3
2*7c568831SAndroid Build Coastguard Workerimport setup_test
3*7c568831SAndroid Build Coastguard Workerimport libxml2
4*7c568831SAndroid Build Coastguard Workerimport sys
5*7c568831SAndroid Build Coastguard Worker
6*7c568831SAndroid Build Coastguard Worker# Memory debug specific
7*7c568831SAndroid Build Coastguard Workerlibxml2.debugMemory(1)
8*7c568831SAndroid Build Coastguard Worker
9*7c568831SAndroid Build Coastguard Workerdtd="""<!ELEMENT foo EMPTY>"""
10*7c568831SAndroid Build Coastguard Workerinstance="""<?xml version="1.0"?>
11*7c568831SAndroid Build Coastguard Worker<foo></foo>"""
12*7c568831SAndroid Build Coastguard Worker
13*7c568831SAndroid Build Coastguard Workerdtd = libxml2.parseDTD(None, 'test.dtd')
14*7c568831SAndroid Build Coastguard Workerctxt = libxml2.newValidCtxt()
15*7c568831SAndroid Build Coastguard Workerdoc = libxml2.parseDoc(instance)
16*7c568831SAndroid Build Coastguard Workerret = doc.validateDtd(ctxt, dtd)
17*7c568831SAndroid Build Coastguard Workerif ret != 1:
18*7c568831SAndroid Build Coastguard Worker    print("error doing DTD validation")
19*7c568831SAndroid Build Coastguard Worker    sys.exit(1)
20*7c568831SAndroid Build Coastguard Worker
21*7c568831SAndroid Build Coastguard Workerdoc.freeDoc()
22*7c568831SAndroid Build Coastguard Workerdtd.freeDtd()
23*7c568831SAndroid Build Coastguard Workerdel dtd
24*7c568831SAndroid Build Coastguard Workerdel ctxt
25*7c568831SAndroid Build Coastguard Worker
26*7c568831SAndroid Build Coastguard Worker# Memory debug specific
27*7c568831SAndroid Build Coastguard Workerlibxml2.cleanupParser()
28*7c568831SAndroid Build Coastguard Workerif libxml2.debugMemory(1) == 0:
29*7c568831SAndroid Build Coastguard Worker    print("OK")
30*7c568831SAndroid Build Coastguard Workerelse:
31*7c568831SAndroid Build Coastguard Worker    print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
32*7c568831SAndroid Build Coastguard Worker
33