Import dEQP.
Import drawElements Quality Program from an internal repository.
Bug: 17388917
Change-Id: Ic109fe4a57e31b2a816113d90fbdf51a43e7abeb
diff --git a/scripts/convert_case_list_to_xml.py b/scripts/convert_case_list_to_xml.py
new file mode 100644
index 0000000..ebd545b
--- /dev/null
+++ b/scripts/convert_case_list_to_xml.py
@@ -0,0 +1,78 @@
+import re
+import sys
+from xml.dom.minidom import Document
+
+class TestCase:
+ def __init__(self, casePath, description, caseType):
+ self.casePath = casePath
+ self.description = description
+ self.caseType = caseType
+ self.children = []
+
+def findAllMatches(haystack, needle):
+ matches = []
+ ndx = -1
+ while True:
+ ndx = haystack.find(needle, ndx+1)
+ if (ndx == -1):
+ break
+ matches.append(ndx)
+ return matches
+
+def createAncestors(casePath):
+ parentCase = None
+ for dotNdx in findAllMatches(casePath, "."):
+ ancestorPath = casePath[:dotNdx]
+ if ancestorPath not in caseNameHash:
+ case = TestCase(ancestorPath, "Test Group", "TestGroup")
+ parentCase.children.append(case)
+ caseNameHash[ancestorPath] = case
+ parentCase = case
+ parentCase = caseNameHash[ancestorPath]
+ return parentCase
+
+def exportCase (doc, parent, testCase):
+ #print testCase.name, testCase.caseType
+ element = doc.createElement("TestCase")
+ element.setAttribute("Name", testCase.casePath.rsplit(".", 2)[-1])
+ element.setAttribute("Description", testCase.description)
+ element.setAttribute("CaseType", testCase.caseType)
+ parent.appendChild(element)
+ for child in testCase.children:
+ exportCase(doc, element, child)
+
+# Main.
+
+packageName = sys.argv[1]
+
+rootCase = TestCase(packageName, packageName, "TestPackage" )
+caseNameHash = { packageName:rootCase }
+caseRE = re.compile(r"^\s*([a-zA-Z0-9_\.\-]+) '([^']*)' (\w+)\s*$".replace(" ", r"\s+"))
+
+lines = open(packageName + ".cases").readlines()
+numMatches = 0
+for line in lines:
+ line = line[:-1]
+ if line.startswith(packageName + "."):
+ m = caseRE.match(line)
+ if m:
+ casePath = m.group(1)
+ description = m.group(2)
+ caseType = m.group(3)
+ parent = createAncestors(casePath)
+ parent.children.append(TestCase(casePath, description, caseType))
+ numMatches += 1
+
+# Create XML document.
+doc = Document()
+element = doc.createElement("TestCaseList")
+doc.appendChild(element)
+for testCase in rootCase.children:
+ exportCase(doc, element, testCase)
+
+# Dump XML document.
+xml = doc.toprettyxml(indent=" ")
+open(packageName + "-cases.xml", "wt").write(xml)
+
+print "%d cases converted." % numMatches
+