This library can parse llvm-cov
reports exported as JSON.
Such JSON exports are typically created by using the following command:
# Dump JSON export to stdout.
llvm-cov export --format=text --instr-profile <profile-data>
For more details on LLVM's source code-based coverage, see here.
For Rust projects, they can be created using cargo-llvm-cov using the following command:
cargo llvm-cov test
# Dump JSON export to stdout.
cargo llvm-cov report --json
use std::fs;
use llvm_cov_json::{CoverageReport};
let json_data = fs::read_to_string("coverage-report.json").unwrap()
let report: CoverageReport = serde_json::from_str(&json_data).unwrap();
/// Get the total count of branches from the summary.
let summary_branch_count = report.data[0].summary.branches.count;
println!("summary_branch_count: {}", summary_branch_count);