Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(55)

Side by Side Diff: third_party/libxml/src/xstc/fixup-tests.py

Issue 1193533007: Upgrade to libxml 2.9.2 and libxslt 1.1.28 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove suppressions, have landed in blink now Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 #!/usr/bin/python -u
2
3 import sys, os
4 import libxml2
5
6
7 libxml2.debugMemory(1)
8 baseDir = os.path.join('msxsdtest', 'Particles')
9 filenames = os.listdir(baseDir)
10 mainXSD = str()
11 signature = str()
12 dictXSD = dict()
13
14 def gatherFiles():
15 for file in filenames:
16 if (file[-5] in ["a", "b", "c"]) and (file[-3:] == 'xsd'):
17 # newfilename = string.replace(filename, ' ', '_')
18 signature = file[:-5]
19 mainXSD = signature + ".xsd"
20 imports = []
21 for sub in filenames:
22 if (mainXSD != sub) and (sub[-3:] == 'xsd') and sub.startswith(s ignature):
23 imports.append(sub)
24 if len(imports) != 0:
25 dictXSD[mainXSD] = imports
26
27 def debugMsg(text):
28 #pass
29 print "DEBUG:", text
30
31
32 def fixup():
33 for mainXSD in dictXSD:
34 debugMsg("fixing '%s'..." % mainXSD)
35 schemaDoc = None
36 xpmainCtx = None
37 # Load the schema document.
38 schemaFile = os.path.join(baseDir, mainXSD)
39 schemaDoc = libxml2.parseFile(schemaFile)
40 if (schemaDoc is None):
41 print "ERROR: doc '%s' not found" % mainXSD
42 sys.exit(1)
43 try:
44 xpmainCtx = schemaDoc.xpathNewContext()
45 xpmainCtx.xpathRegisterNs("xs", "http://www.w3.org/2001/XMLSchema");
46 xpres = xpmainCtx.xpathEval("/xs:schema")
47 if len(xpres) == 0:
48 print "ERROR: doc '%s' has no <schema> element" % mainXSD
49 sys.exit(1)
50 schemaElem = xpres[0]
51 schemaNs = schemaElem.ns()
52 # Select all <import>s.
53 xpres = xpmainCtx.xpathEval("/xs:schema/xs:import")
54 if len(xpres) != 0:
55 for elem in xpres:
56 loc = elem.noNsProp("schemaLocation")
57 if (loc is not None):
58 debugMsg(" imports '%s'" % loc)
59 if loc in dictXSD[mainXSD]:
60 dictXSD[mainXSD].remove(loc)
61 for loc in dictXSD[mainXSD]:
62 # Read out the targetNamespace.
63 impTargetNs = None
64 impFile = os.path.join(baseDir, loc)
65 impDoc = libxml2.parseFile(impFile)
66 try:
67 xpimpCtx = impDoc.xpathNewContext()
68 try:
69 xpimpCtx.setContextDoc(impDoc)
70 xpimpCtx.xpathRegisterNs("xs", "http://www.w3.org/2001/X MLSchema");
71 xpres = xpimpCtx.xpathEval("/xs:schema")
72 impTargetNs = xpres[0].noNsProp("targetNamespace")
73 finally:
74 xpimpCtx.xpathFreeContext()
75 finally:
76 impDoc.freeDoc()
77
78 # Add the <import>.
79 debugMsg(" adding <import namespace='%s' schemaLocation='%s'/>" % (impTargetNs, loc))
80 newElem = schemaDoc.newDocNode(schemaNs, "import", None)
81 if (impTargetNs is not None):
82 newElem.newProp("namespace", impTargetNs)
83 newElem.newProp("schemaLocation", loc)
84 if schemaElem.children is not None:
85 schemaElem.children.addPrevSibling(newElem)
86 schemaDoc.saveFile(schemaFile)
87 finally:
88 xpmainCtx.xpathFreeContext()
89 schemaDoc.freeDoc()
90
91 try:
92 gatherFiles()
93 fixup()
94 finally:
95 libxml2.cleanupParser()
96 if libxml2.debugMemory(1) != 0:
97 print "Memory leak %d bytes" % (libxml2.debugMemory(1))
98 libxml2.dumpMemory()
99
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698