xref: /aosp_15_r20/external/libxml2/python/tests/push.py (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker#!/usr/bin/env python3
2*7c568831SAndroid Build Coastguard Workerimport sys
3*7c568831SAndroid Build Coastguard Workerimport setup_test
4*7c568831SAndroid Build Coastguard Workerimport libxml2
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 Workerctxt = libxml2.createPushParser(None, "<foo", 4, "test.xml")
10*7c568831SAndroid Build Coastguard Workerctxt.parseChunk("/>", 2, 1)
11*7c568831SAndroid Build Coastguard Workerdoc = ctxt.doc()
12*7c568831SAndroid Build Coastguard Workerctxt=None
13*7c568831SAndroid Build Coastguard Workerif doc.name != "test.xml":
14*7c568831SAndroid Build Coastguard Worker    print("document name error")
15*7c568831SAndroid Build Coastguard Worker    sys.exit(1)
16*7c568831SAndroid Build Coastguard Workerroot = doc.children
17*7c568831SAndroid Build Coastguard Workerif root.name != "foo":
18*7c568831SAndroid Build Coastguard Worker    print("root element name error")
19*7c568831SAndroid Build Coastguard Worker    sys.exit(1)
20*7c568831SAndroid Build Coastguard Workerdoc.freeDoc()
21*7c568831SAndroid Build Coastguard Workeri = 10000
22*7c568831SAndroid Build Coastguard Workerwhile i > 0:
23*7c568831SAndroid Build Coastguard Worker    ctxt = libxml2.createPushParser(None, "<foo", 4, "test.xml")
24*7c568831SAndroid Build Coastguard Worker    ctxt.parseChunk("/>", 2, 1)
25*7c568831SAndroid Build Coastguard Worker    doc = ctxt.doc()
26*7c568831SAndroid Build Coastguard Worker    doc.freeDoc()
27*7c568831SAndroid Build Coastguard Worker    i = i -1
28*7c568831SAndroid Build Coastguard Workerctxt=None
29*7c568831SAndroid Build Coastguard Worker
30*7c568831SAndroid Build Coastguard Worker# Memory debug specific
31*7c568831SAndroid Build Coastguard Workerlibxml2.cleanupParser()
32*7c568831SAndroid Build Coastguard Workerif libxml2.debugMemory(1) == 0:
33*7c568831SAndroid Build Coastguard Worker    print("OK")
34*7c568831SAndroid Build Coastguard Workerelse:
35*7c568831SAndroid Build Coastguard Worker    print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
36