summaryrefslogtreecommitdiff
path: root/readcov.py
diff options
context:
space:
mode:
Diffstat (limited to 'readcov.py')
-rw-r--r--readcov.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/readcov.py b/readcov.py
new file mode 100644
index 0000000..de490dc
--- /dev/null
+++ b/readcov.py
@@ -0,0 +1,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)