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