CTS result readers: refactor common code into utils.py
Bug:
Change-Id: Ifbb6dda89a9250207d385f079e87cfe2b2da4ac9
diff --git a/tools/test_android_cts.py b/tools/test_android_cts.py
index 384ce70..7a796b9 100755
--- a/tools/test_android_cts.py
+++ b/tools/test_android_cts.py
@@ -30,6 +30,7 @@
import os
import re
import sys
+import time
import gradle
import utils
@@ -103,34 +104,19 @@
# tree[module_name][testcase_name][test_name] = True|False
#
def read_test_result_into_tree(filename):
- re_module = re.compile('<Module name="([^"]*)"')
- re_testcase = re.compile('<TestCase name="([^"]*)"')
- re_test = re.compile('<Test result="(pass|fail)" name="([^"]*)"')
tree = {}
module = None
testcase = None
- with open(filename) as f:
- for line in f:
- m = re_module.search(line)
- if m:
- module_name = m.groups()[0]
- tree[module_name] = {}
- module = tree[module_name]
- continue
+ for x in utils.read_cts_test_result(filename):
+ if type(x) is utils.CtsModule:
+ tree[x.name] = {}
+ module = tree[x.name]
+ elif type(x) is utils.CtsTestCase:
+ module[x.name] = {}
+ testcase = module[x.name]
+ else:
+ testcase[x.name] = x.outcome
- m = re_testcase.search(line)
- if m:
- testcase_name = m.groups()[0]
- module[testcase_name] = {}
- testcase = module[testcase_name]
- continue
-
- m = re_test.search(line)
- if m:
- outcome = m.groups()[0]
- test_name = m.groups()[1]
- assert outcome in ["fail", "pass"]
- testcase[test_name] = outcome == "pass"
return tree
# Report the items with the title