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)