summaryrefslogtreecommitdiffstats
path: root/tests/gdbm/parser.py
blob: 9835b9e6d8a08764a0db932d7378c61f76f5e470 (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
import re

def log_parser(log_file):
    prefix = "Version"
    pattern_types = '^(GDBM|Block|Compatibility|DB|Cloexec|Wordwrap|gdbmtool|Database+?).*'
    regex_type = re.compile(pattern_types, re.MULTILINE)
    pattern = '^(FAIL|PASS|SKIP+?): (.+)'
    regex = re.compile(pattern, re.MULTILINE)
    case_list = dict()

    test_log = open(log_file, 'r')
    line = test_log.readline()
    while line:
        # 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]
            case_list[case_name] = [case_name, groups[0], ""]

        line=test_log.readline()

    test_log.close()
    return case_list