Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--codecov: change how regions are calculated #255

Merged
merged 2 commits into from
Apr 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 52 additions & 38 deletions src/json.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use std::{
collections::BTreeMap,
collections::{BTreeMap, HashMap},
fmt::{Debug, Formatter},
};

Expand Down Expand Up @@ -66,38 +66,39 @@ impl CodeCovJsonExport {
fn from_export(value: Export, ignore_filename_regex: Option<&Regex>) -> Self {
let functions = value.functions.unwrap_or_default();

let mut coverage = BTreeMap::new();
let mut regions = BTreeMap::new();

for func in functions {
let func_count = func.count; // instances of function

for filename in func.filenames {
if let Some(re) = ignore_filename_regex {
if re.is_match(&filename) {
continue;
}
}
for region in &func.regions {
let line_start = region.line_start();
let line_end = region.line_end();

let coverage: &mut CodeCovExport =
coverage.entry(filename.clone()).or_default();

for line in line_start..=line_end {
let coverage = coverage.0.entry(line).or_default();
coverage.count += func_count;

// TODO: not sure this is 100% accurate, but it will be most of the time.
// for instance, if there are 5 versions of a functions and a line is
// hit 5 times does not mean all 5 versions of that function have been
// called. For instance, one of the functions might have been called
// multiple times while others might have been called none.
// Regardless, we for sure do not want to increase _over_ the
// `func_count` as not more than the number of functions could have been
// covered
coverage.covered += region.execution_count().min(func_count);
}
let loc = RegionLocation::from(region);

// region location to covered
let coverage: &mut HashMap<RegionLocation, bool> =
regions.entry(filename.clone()).or_default();

let covered = coverage.entry(loc).or_default();

*covered = *covered || region.execution_count() > 0;
}
}
}

let mut coverage = BTreeMap::new();

for (filename, regions) in regions {
let coverage: &mut CodeCovExport = coverage.entry(filename).or_default();

for (loc, covered) in regions {
for line in loc.lines() {
let coverage = coverage.0.entry(line).or_default();
coverage.count += 1;
coverage.covered += u64::from(covered);
}
}
}
Expand All @@ -116,7 +117,7 @@ impl CodeCovJsonExport {

let mut combined = CodeCovJsonExport::default();

// first pass: combine
// combine
for export in exports {
for (filename, coverage) in export.coverage {
let combined = combined.coverage.entry(filename).or_default();
Expand All @@ -131,19 +132,6 @@ impl CodeCovJsonExport {
}
}

// second pass: replace all 0/0 with 0/1. We will get 0/0 if the function was not included
// in any of the test binaries
// (for instance, if the function was never called and was optimized out).
// We want to make sure that we do not get a 100% coverage if codecov chooses to ignore the
// 0/0.
for (_, coverage) in &mut combined.coverage {
for (_, coverage) in &mut coverage.0 {
if coverage.count == 0 {
coverage.count = 1;
}
}
}

combined
}
}
Expand Down Expand Up @@ -445,6 +433,32 @@ impl Region {
}
}

/// The location of a region
#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq)]
pub(crate) struct RegionLocation {
start_line: u64,
end_line: u64,
start_column: u64,
end_column: u64,
}

impl From<&Region> for RegionLocation {
fn from(region: &Region) -> Self {
Self {
start_line: region.line_start(),
end_line: region.line_end(),
start_column: region.column_start(),
end_column: region.column_end(),
}
}
}

impl RegionLocation {
fn lines(&self) -> impl Iterator<Item = u64> {
self.start_line..=self.end_line
}
}

impl Debug for Region {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
f.debug_struct("Region")
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"src/main.rs":{"1":"3/3","2":"2/2","3":"1/2","4":"1/2","5":"0/2","6":"0/2","8":"2/2"}}}
{"coverage":{"src/main.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"1/1","5":"0/1","6":"0/1","8":"1/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"src/lib.rs":{"1":"1/1","5":"2/2","6":"2/2","7":"1/2","8":"0/2","9":"1/2","10":"0/2","11":"0/2","13":"2/2","15":"1/1"}}}
{"coverage":{"src/lib.rs":{"1":"1/1","5":"1/1","6":"1/1","7":"1/1","8":"0/1","9":"1/1","10":"0/1","11":"0/1","13":"1/1","15":"1/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"src/lib.rs":{"1":"1/1","3":"2/2","4":"2/2","5":"1/2","7":"1/2","9":"2/2","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1"}}}
{"coverage":{"src/lib.rs":{"1":"1/1","3":"1/1","4":"1/1","5":"1/1","7":"1/1","9":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1"}}}
2 changes: 1 addition & 1 deletion tests/fixtures/coverage-reports/merge/merge.codecov.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"src/lib.rs":{"1":"4/4","2":"2/2","3":"1/2","5":"1/2","7":"2/2","9":"2/2","10":"2/2","11":"2/2","12":"2/2","13":"1/1","14":"1/1","15":"2/2"}}}
{"coverage":{"src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","5":"1/1","7":"1/1","9":"1/1","10":"2/2","11":"2/2","12":"2/2","13":"1/1","14":"1/1","15":"1/1"}}}
2 changes: 1 addition & 1 deletion tests/fixtures/coverage-reports/real1/all.codecov.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member1/member2/src/lib.rs":{"1":"3/3","2":"2/2","3":"2/2","4":"0/2","5":"0/2","6":"0/2","8":"2/2"},"member1/src/lib.rs":{"1":"3/3","2":"2/2","3":"2/2","4":"0/2","5":"0/2","6":"0/2","8":"2/2"},"src/lib.rs":{"1":"1/1","4":"4/4","5":"4/4","6":"0/4","7":"2/4","8":"0/4","9":"2/4","11":"4/4","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1","18":"1/1","19":"1/1"}}}
{"coverage":{"member1/member2/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member1/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"src/lib.rs":{"1":"1/1","4":"1/1","5":"1/1","6":"0/1","7":"1/1","8":"0/1","9":"1/1","11":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1","18":"1/1","19":"1/1"}}}
2 changes: 1 addition & 1 deletion tests/fixtures/coverage-reports/real1/exclude.codecov.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member1/member2/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"},"member1/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
{"coverage":{"member1/member2/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"},"member1/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member1/member2/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
{"coverage":{"member1/member2/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member1/member2/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
{"coverage":{"member1/member2/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member1/member2/src/lib.rs":{"1":"2/2","2":"2/2","3":"2/2","4":"0/2","5":"0/2","6":"0/2","8":"2/2"},"member1/src/lib.rs":{"1":"2/2","2":"2/2","3":"2/2","4":"0/2","5":"0/2","6":"0/2","8":"2/2"},"src/lib.rs":{"1":"1/1","4":"4/4","5":"4/4","6":"0/4","7":"2/4","8":"0/4","9":"2/4","11":"4/4","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1","18":"1/1","19":"1/1"}}}
{"coverage":{"member1/member2/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member1/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"src/lib.rs":{"1":"1/1","4":"1/1","5":"1/1","6":"0/1","7":"1/1","8":"0/1","9":"1/1","11":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1","18":"1/1","19":"1/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member2/member3/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1","10":"2/2","11":"2/2","12":"1/2","13":"0/2","14":"1/2","15":"0/2","17":"2/2","19":"1/1","20":"1/1","21":"1/1","22":"1/1","23":"1/1"},"member2/src/member4/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
{"coverage":{"member2/member3/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1","10":"1/1","11":"1/1","12":"1/1","13":"0/1","14":"1/1","15":"0/1","17":"1/1","19":"1/1","20":"1/1","21":"1/1","22":"1/1","23":"1/1"},"member2/src/member4/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member1/src/lib.rs":{"1":"3/3","2":"2/2","3":"0/2","4":"1/2","5":"0/2","6":"1/2","8":"2/2","10":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1"},"member2/member3/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/member4/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
{"coverage":{"member1/src/lib.rs":{"1":"2/2","2":"1/1","3":"0/1","4":"1/1","5":"0/1","6":"1/1","8":"1/1","10":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1"},"member2/member3/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/member4/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member2/member3/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"},"member2/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1","10":"2/2","11":"2/2","12":"1/2","13":"0/2","14":"1/2","15":"0/2","17":"2/2","19":"1/1","20":"1/1","21":"1/1","22":"1/1","23":"1/1"},"member2/src/member4/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
{"coverage":{"member2/member3/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"},"member2/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1","10":"1/1","11":"1/1","12":"1/1","13":"0/1","14":"1/1","15":"0/1","17":"1/1","19":"1/1","20":"1/1","21":"1/1","22":"1/1","23":"1/1"},"member2/src/member4/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member1/src/lib.rs":{"1":"3/3","2":"2/2","3":"0/2","4":"1/2","5":"0/2","6":"1/2","8":"2/2","10":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1"},"member2/member3/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1","10":"0/1","11":"0/1","12":"0/1","13":"0/1","14":"0/1","15":"0/1","17":"0/1"},"member2/src/member4/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
{"coverage":{"member1/src/lib.rs":{"1":"2/2","2":"1/1","3":"0/1","4":"1/1","5":"0/1","6":"1/1","8":"1/1","10":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1"},"member2/member3/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1","10":"0/1","11":"0/1","12":"0/1","13":"0/1","14":"0/1","15":"0/1","17":"0/1"},"member2/src/member4/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member2/member3/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"},"member2/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1","10":"2/2","11":"2/2","12":"1/2","13":"0/2","14":"1/2","15":"0/2","17":"2/2","19":"1/1","20":"1/1","21":"1/1","22":"1/1","23":"1/1"},"member2/src/member4/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
{"coverage":{"member2/member3/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"},"member2/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1","10":"1/1","11":"1/1","12":"1/1","13":"0/1","14":"1/1","15":"0/1","17":"1/1","19":"1/1","20":"1/1","21":"1/1","22":"1/1","23":"1/1"},"member2/src/member4/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member1/src/lib.rs":{"1":"3/3","2":"2/2","3":"0/2","4":"1/2","5":"0/2","6":"1/2","8":"2/2","10":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1"},"member2/member3/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/member4/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
{"coverage":{"member1/src/lib.rs":{"1":"2/2","2":"1/1","3":"0/1","4":"1/1","5":"0/1","6":"1/1","8":"1/1","10":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1"},"member2/member3/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/member4/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member1/src/lib.rs":{"1":"3/3","2":"2/2","3":"0/2","4":"1/2","5":"0/2","6":"1/2","8":"2/2","10":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1"},"member2/member3/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1","10":"0/1","11":"0/1","12":"0/1","13":"0/1","14":"0/1","15":"0/1","17":"0/1"},"member2/src/member4/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
{"coverage":{"member1/src/lib.rs":{"1":"2/2","2":"1/1","3":"0/1","4":"1/1","5":"0/1","6":"1/1","8":"1/1","10":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1"},"member2/member3/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1","10":"0/1","11":"0/1","12":"0/1","13":"0/1","14":"0/1","15":"0/1","17":"0/1"},"member2/src/member4/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member1/src/lib.rs":{"1":"3/3","2":"2/2","3":"0/2","4":"1/2","5":"0/2","6":"1/2","8":"2/2","10":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1"},"member2/member3/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1","10":"2/2","11":"2/2","12":"1/2","13":"0/2","14":"1/2","15":"0/2","17":"2/2","19":"1/1","20":"1/1","21":"1/1","22":"1/1","23":"1/1"},"member2/src/member4/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
{"coverage":{"member1/src/lib.rs":{"1":"2/2","2":"1/1","3":"0/1","4":"1/1","5":"0/1","6":"1/1","8":"1/1","10":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1"},"member2/member3/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1","10":"1/1","11":"1/1","12":"1/1","13":"0/1","14":"1/1","15":"0/1","17":"1/1","19":"1/1","20":"1/1","21":"1/1","22":"1/1","23":"1/1"},"member2/src/member4/src/lib.rs":{"1":"1/1","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member2/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1","10":"2/2","11":"2/2","12":"1/2","13":"0/2","14":"1/2","15":"0/2","17":"2/2","19":"1/1","20":"1/1","21":"1/1","22":"1/1","23":"1/1"}}}
{"coverage":{"member2/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1","10":"1/1","11":"1/1","12":"1/1","13":"0/1","14":"1/1","15":"0/1","17":"1/1","19":"1/1","20":"1/1","21":"1/1","22":"1/1","23":"1/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member2/member3/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
{"coverage":{"member2/member3/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member2/src/member4/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
{"coverage":{"member2/src/member4/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member2/member3/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"},"member2/src/member4/src/lib.rs":{"1":"1/1","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
{"coverage":{"member2/member3/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"},"member2/src/member4/src/lib.rs":{"1":"1/2","2":"0/1","3":"0/1","4":"0/1","5":"0/1","6":"0/1","8":"0/1"}}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"coverage":{"member1/src/lib.rs":{"1":"3/3","2":"2/2","3":"0/2","4":"1/2","5":"0/2","6":"1/2","8":"2/2","10":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1"},"member2/member3/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1","10":"2/2","11":"2/2","12":"1/2","13":"0/2","14":"1/2","15":"0/2","17":"2/2","19":"1/1","20":"1/1","21":"1/1","22":"1/1","23":"1/1"},"member2/src/member4/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}
{"coverage":{"member1/src/lib.rs":{"1":"2/2","2":"1/1","3":"0/1","4":"1/1","5":"0/1","6":"1/1","8":"1/1","10":"1/1","11":"1/1","12":"1/1","13":"1/1","14":"1/1","15":"1/1","16":"1/1","17":"1/1"},"member2/member3/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"},"member2/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1","10":"1/1","11":"1/1","12":"1/1","13":"0/1","14":"1/1","15":"0/1","17":"1/1","19":"1/1","20":"1/1","21":"1/1","22":"1/1","23":"1/1"},"member2/src/member4/src/lib.rs":{"1":"2/2","2":"1/1","3":"1/1","4":"0/1","5":"0/1","6":"0/1","8":"1/1"}}}