xref: /aosp_15_r20/external/libxml2/python/tests/attribs.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 Worker#
10*7c568831SAndroid Build Coastguard Worker# Testing XML document serialization
11*7c568831SAndroid Build Coastguard Worker#
12*7c568831SAndroid Build Coastguard Workerdoc = libxml2.readDoc(
13*7c568831SAndroid Build Coastguard Worker"""<?xml version="1.0" encoding="iso-8859-1"?>
14*7c568831SAndroid Build Coastguard Worker<!DOCTYPE test [
15*7c568831SAndroid Build Coastguard Worker<!ELEMENT test (#PCDATA) >
16*7c568831SAndroid Build Coastguard Worker<!ATTLIST test xmlns:abc CDATA #FIXED "http://abc.org" >
17*7c568831SAndroid Build Coastguard Worker<!ATTLIST test abc:attr CDATA #FIXED "def" >
18*7c568831SAndroid Build Coastguard Worker]>
19*7c568831SAndroid Build Coastguard Worker<test />
20*7c568831SAndroid Build Coastguard Worker""", None, None, libxml2.XML_PARSE_DTDATTR)
21*7c568831SAndroid Build Coastguard Workerelem = doc.getRootElement()
22*7c568831SAndroid Build Coastguard Workerattr = elem.hasNsProp('attr', 'http://abc.org')
23*7c568831SAndroid Build Coastguard Workerprint(attr.serialize())
24*7c568831SAndroid Build Coastguard Workerif attr == None:
25*7c568831SAndroid Build Coastguard Worker    print("Failed to find defaulted attribute abc:attr")
26*7c568831SAndroid Build Coastguard Worker    sys.exit(1)
27*7c568831SAndroid Build Coastguard Worker
28*7c568831SAndroid Build Coastguard Workerdoc.freeDoc()
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