~pwlars/ubuntu-test-cases/krillin-recovery

« back to all changes in this revision

Viewing changes to scripts/combine_results

  • Committer: Paul Larson
  • Date: 2014-10-21 15:40:57 UTC
  • Revision ID: paul.larson@canonical.com-20141021154057-zk465lswaexddae7
Find a better default location for the wifi configuration

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
from xml.etree import ElementTree
14
14
 
15
15
 
16
 
def _build_node(name, rcfile, stdout):
 
16
PRE_COMBINE = [
 
17
    ('settle_before', 'settle_before'),
 
18
    ('setup_setup', 'setup'),
 
19
]
 
20
 
 
21
POST_COMBINE = [
 
22
    ('settle_after', 'settle_after'),
 
23
    ('setup_teardown', 'teardown'),
 
24
]
 
25
 
 
26
 
 
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
 
31
 
 
32
    if not os.path.exists(rcfile):
 
33
        return None, False
 
34
 
20
35
    rc = int(open(rcfile).read())
21
36
    if rc != 0:
22
37
        f = ElementTree.Element('failure')
36
51
        e.attrib['failures'] = '0'
37
52
        e.attrib['tests'] = '1'
38
53
 
 
54
        # make a guess at the classname:
 
55
        classname = os.path.basename(os.path.dirname(apfile))
 
56
 
39
57
        t = ElementTree.Element('testcase')
40
58
        e.append(t)
41
 
        t.attrib['classname'] = 'phablet-tools'
 
59
        t.attrib['classname'] = classname
42
60
        t.attrib['name'] = 'phablet-test-run'
43
61
 
44
62
        f = ElementTree.Element('failure')
49
67
    return tree
50
68
 
51
69
 
 
70
def _get_classname(results):
 
71
    if len(results) < 1:
 
72
        return '???'
 
73
 
 
74
    cname = results[0].attrib.get('classname')
 
75
    if cname:
 
76
        cname = cname.split('.')[0]
 
77
    else:
 
78
        cname = '???'
 
79
    return cname
 
80
 
 
81
 
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()
 
86
    added_results = 0
56
87
 
57
88
    errors = int(ap_results.attrib['errors'])
58
89
 
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)
63
 
    if failed:
64
 
        errors += 1
65
 
 
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)
70
 
    if failed:
71
 
        errors += 1
72
 
 
73
 
    num = int(ap_results.attrib['tests']) + 2
 
90
    classname = _get_classname(ap_results)
 
91
 
 
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)
 
96
        if node is not None:
 
97
            ap_results.insert(0, node)
 
98
            if failed:
 
99
                errors += 1
 
100
            added_results += 1
 
101
 
 
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)
 
106
        if node is not None:
 
107
            ap_results.append(node)
 
108
            if failed:
 
109
                errors += 1
 
110
            added_results += 1
 
111
 
 
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)
76
115