xref: /aosp_15_r20/external/libxml2/python/tests/tstmem.py (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1#!/usr/bin/env python3
2import setup_test
3import libxml2
4
5try:
6    import libxml2mod
7except ModuleNotFoundError:
8    from libxmlmods import libxml2mod
9
10import sys
11
12def error(msg, data):
13    pass
14
15# Memory debug specific
16libxml2.debugMemory(1)
17
18dtd="""<!ELEMENT foo EMPTY>"""
19instance="""<?xml version="1.0"?>
20<foo></foo>"""
21
22dtd = libxml2.parseDTD(None, 'test.dtd')
23ctxt = libxml2.newValidCtxt()
24libxml2mod.xmlSetValidErrors(ctxt._o, error, error)
25doc = libxml2.parseDoc(instance)
26ret = doc.validateDtd(ctxt, dtd)
27if ret != 1:
28    print("error doing DTD validation")
29    sys.exit(1)
30
31doc.freeDoc()
32dtd.freeDtd()
33del dtd
34del ctxt
35
36# Memory debug specific
37libxml2.cleanupParser()
38if libxml2.debugMemory(1) == 0:
39    print("OK")
40else:
41    print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
42