xref: /aosp_15_r20/external/libxml2/python/tests/build.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 Workerdoc = libxml2.newDoc("1.0")
10*7c568831SAndroid Build Coastguard Workercomment = doc.newDocComment("This is a generated document")
11*7c568831SAndroid Build Coastguard Workerdoc.addChild(comment)
12*7c568831SAndroid Build Coastguard Workerpi = libxml2.newPI("test", "PI content")
13*7c568831SAndroid Build Coastguard Workerdoc.addChild(pi)
14*7c568831SAndroid Build Coastguard Workerroot = doc.newChild(None, "doc", None)
15*7c568831SAndroid Build Coastguard Workerns = root.newNs("http://example.com/doc", "my")
16*7c568831SAndroid Build Coastguard Workerroot.setNs(ns)
17*7c568831SAndroid Build Coastguard Workerelem = root.newChild(None, "foo", "bar")
18*7c568831SAndroid Build Coastguard Workerelem.setBase("http://example.com/imgs")
19*7c568831SAndroid Build Coastguard Workerelem.setProp("img", "image.gif")
20*7c568831SAndroid Build Coastguard Workerdoc.saveFile("tmp.xml")
21*7c568831SAndroid Build Coastguard Workerdoc.freeDoc()
22*7c568831SAndroid Build Coastguard Worker
23*7c568831SAndroid Build Coastguard Workerdoc = libxml2.parseFile("tmp.xml")
24*7c568831SAndroid Build Coastguard Workercomment = doc.children
25*7c568831SAndroid Build Coastguard Workerif comment.type != "comment" or \
26*7c568831SAndroid Build Coastguard Worker   comment.content != "This is a generated document":
27*7c568831SAndroid Build Coastguard Worker   print("error rereading comment")
28*7c568831SAndroid Build Coastguard Worker   sys.exit(1)
29*7c568831SAndroid Build Coastguard Workerpi = comment.next
30*7c568831SAndroid Build Coastguard Workerif pi.type != "pi" or pi.name != "test" or pi.content != "PI content":
31*7c568831SAndroid Build Coastguard Worker   print("error rereading PI")
32*7c568831SAndroid Build Coastguard Worker   sys.exit(1)
33*7c568831SAndroid Build Coastguard Workerroot = pi.next
34*7c568831SAndroid Build Coastguard Workerif root.name != "doc":
35*7c568831SAndroid Build Coastguard Worker   print("error rereading root")
36*7c568831SAndroid Build Coastguard Worker   sys.exit(1)
37*7c568831SAndroid Build Coastguard Workerns = root.ns()
38*7c568831SAndroid Build Coastguard Workerif ns.name != "my" or ns.content != "http://example.com/doc":
39*7c568831SAndroid Build Coastguard Worker   print("error rereading namespace")
40*7c568831SAndroid Build Coastguard Worker   sys.exit(1)
41*7c568831SAndroid Build Coastguard Workerelem = root.children
42*7c568831SAndroid Build Coastguard Workerif elem.name != "foo":
43*7c568831SAndroid Build Coastguard Worker   print("error rereading elem")
44*7c568831SAndroid Build Coastguard Worker   sys.exit(1)
45*7c568831SAndroid Build Coastguard Workerif elem.getBase(None) != "http://example.com/imgs":
46*7c568831SAndroid Build Coastguard Worker   print("error rereading base")
47*7c568831SAndroid Build Coastguard Worker   sys.exit(1)
48*7c568831SAndroid Build Coastguard Workerif elem.prop("img") != "image.gif":
49*7c568831SAndroid Build Coastguard Worker   print("error rereading property")
50*7c568831SAndroid Build Coastguard Worker   sys.exit(1)
51*7c568831SAndroid Build Coastguard Worker
52*7c568831SAndroid Build Coastguard Workerdoc.freeDoc()
53*7c568831SAndroid Build Coastguard Worker
54*7c568831SAndroid Build Coastguard Worker# Memory debug specific
55*7c568831SAndroid Build Coastguard Workerlibxml2.cleanupParser()
56*7c568831SAndroid Build Coastguard Workerif libxml2.debugMemory(1) == 0:
57*7c568831SAndroid Build Coastguard Worker    print("OK")
58*7c568831SAndroid Build Coastguard Workerelse:
59*7c568831SAndroid Build Coastguard Worker    print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
60