aboutsummaryrefslogtreecommitdiffstats
path: root/tests/kbd/parser.py
blob: 315ae27d9d7fdfc0923ad3bfe83cd61d5bec52bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import re

def log_parser(log_file):
    prefix = ""
    pattern_types = '^(libkeymap|libkbdfile+?).*'
    regex_type = re.compile(pattern_types, re.MULTILINE)
    pattern = '^(FAIL|PASS|SKIP+?): (.+)'
    regex = re.compile(pattern, re.MULTILINE)
    end_msg = "Test results"
    case_list = dict()

    test_log = open(log_file, 'r')
    line = test_log.readline()
    while line:
        if end_msg in line:
            break

        # match test suite name
        matchs_type = regex_type.search(line)
        if matchs_type:
            groups_type = matchs_type.groups()
            prefix = groups_type[0]

        # match case and result
        matchs = regex.search(line)
        if matchs:
            groups = matchs.groups()
            case_name = prefix + " " + groups[1].strip()
            case_list[case_name] = [case_name, groups[0], ""]

        line=test_log.readline()

    test_log.close()
    return case_list