summaryrefslogtreecommitdiff
path: root/readcov.py
blob: de490dcc6c30729f5fe2677f074da64ac00c675b (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 json

def process_cpp_coverage(parsed: dict):
    for data in cov["data"]:
        for file in data["files"]:
            print(file["filename"])
            for seg in file["segments"]:
                # https://github.com/llvm/llvm-project/blob/main/llvm/tools/llvm-cov/CoverageExporterJson.cpp
                print("row, col, cnt, has_cnt, is_reg_entry, is_gap", seg)
    return

def process_py_coverage(parsed: dict):
    for filename, vals in parsed["files"].items():
        print(filename)
        print(vals["missing_lines"])
    return

def json_dispatch(parsed: dict):
    if "type" in parsed and parsed["type"] == "llvm.coverage.json.export":
        process_cpp_coverage(parsed)
    elif "meta" in parsed:
        process_py_coverage(parsed)
    return

if __name__ == "__main__":
    flist = ["cov.json", "coverage.json"]
    for file in flist:
        with open(file, "rt") as cov_json:
            cov = json.load(cov_json)
            json_dispatch(cov)