13
13
from xml.etree import ElementTree
16
def _build_node(name, rcfile, stdout):
17
('settle_before', 'settle_before'),
18
('setup_setup', 'setup'),
22
('settle_after', 'settle_after'),
23
('setup_teardown', 'teardown'),
27
def _build_node(classname, name, rcfile, stdout):
17
28
e = ElementTree.Element('testcase')
18
e.attrib['classname'] = 'systemsettle'
29
e.attrib['classname'] = classname
19
30
e.attrib['name'] = name
32
if not os.path.exists(rcfile):
20
35
rc = int(open(rcfile).read())
22
37
f = ElementTree.Element('failure')
36
51
e.attrib['failures'] = '0'
37
52
e.attrib['tests'] = '1'
54
# make a guess at the classname:
55
classname = os.path.basename(os.path.dirname(apfile))
39
57
t = ElementTree.Element('testcase')
41
t.attrib['classname'] = 'phablet-tools'
59
t.attrib['classname'] = classname
42
60
t.attrib['name'] = 'phablet-test-run'
44
62
f = ElementTree.Element('failure')
70
def _get_classname(results):
74
cname = results[0].attrib.get('classname')
76
cname = cname.split('.')[0]
52
82
def combine(resdir):
53
83
ap_file = os.path.join(resdir, 'test_results.xml')
54
84
tree = _get_results(ap_file)
55
85
ap_results = tree.getroot()
57
88
errors = int(ap_results.attrib['errors'])
59
rc = os.path.join(resdir, 'settle_before.rc')
60
log = os.path.join(resdir, 'settle_before.log')
61
node, failed = _build_node('before', rc, log)
62
ap_results.insert(0, node)
66
rc = os.path.join(resdir, 'settle_after.rc')
67
log = os.path.join(resdir, 'settle_after.log')
68
node, failed = _build_node('after', rc, log)
69
ap_results.append(node)
73
num = int(ap_results.attrib['tests']) + 2
90
classname = _get_classname(ap_results)
92
for basename, label in PRE_COMBINE:
93
rc = os.path.join(resdir, basename + '.rc')
94
log = os.path.join(resdir, basename + '.log')
95
node, failed = _build_node(classname, label, rc, log)
97
ap_results.insert(0, node)
102
for basename, label in POST_COMBINE:
103
rc = os.path.join(resdir, basename + '.rc')
104
log = os.path.join(resdir, basename + '.log')
105
node, failed = _build_node(classname, label, rc, log)
107
ap_results.append(node)
112
num = int(ap_results.attrib['tests']) + added_results
74
113
ap_results.attrib['tests'] = str(num)
75
114
ap_results.attrib['errors'] = str(errors)