diff --git a/src/json.rs b/src/json.rs index 25064225..ecfb70c5 100644 --- a/src/json.rs +++ b/src/json.rs @@ -1,5 +1,5 @@ use std::{ - collections::BTreeMap, + collections::{BTreeMap, HashMap}, fmt::{Debug, Formatter}, }; @@ -66,11 +66,9 @@ 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) { @@ -78,26 +76,29 @@ impl CodeCovJsonExport { } } 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 = + 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); } } } @@ -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(); @@ -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 } } @@ -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 { + self.start_line..=self.end_line + } +} + impl Debug for Region { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.debug_struct("Region") diff --git a/tests/fixtures/coverage-reports/bin_crate/bin_crate.codecov.json b/tests/fixtures/coverage-reports/bin_crate/bin_crate.codecov.json index dba26dc3..d0e08808 100644 --- a/tests/fixtures/coverage-reports/bin_crate/bin_crate.codecov.json +++ b/tests/fixtures/coverage-reports/bin_crate/bin_crate.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/coverage_helper/coverage_helper.codecov.json b/tests/fixtures/coverage-reports/coverage_helper/coverage_helper.codecov.json index 5ce21e4a..93ccb4d9 100644 --- a/tests/fixtures/coverage-reports/coverage_helper/coverage_helper.codecov.json +++ b/tests/fixtures/coverage-reports/coverage_helper/coverage_helper.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/instantiations/instantiations.codecov.json b/tests/fixtures/coverage-reports/instantiations/instantiations.codecov.json index 9193b9b5..1172d84a 100644 --- a/tests/fixtures/coverage-reports/instantiations/instantiations.codecov.json +++ b/tests/fixtures/coverage-reports/instantiations/instantiations.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/merge/merge.codecov.json b/tests/fixtures/coverage-reports/merge/merge.codecov.json index 20c4d827..a6934851 100644 --- a/tests/fixtures/coverage-reports/merge/merge.codecov.json +++ b/tests/fixtures/coverage-reports/merge/merge.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/real1/all.codecov.json b/tests/fixtures/coverage-reports/real1/all.codecov.json index 498b1cbf..6324bbfc 100644 --- a/tests/fixtures/coverage-reports/real1/all.codecov.json +++ b/tests/fixtures/coverage-reports/real1/all.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/real1/exclude.codecov.json b/tests/fixtures/coverage-reports/real1/exclude.codecov.json index 435cd5ab..14fb1410 100644 --- a/tests/fixtures/coverage-reports/real1/exclude.codecov.json +++ b/tests/fixtures/coverage-reports/real1/exclude.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/real1/manifest_path.codecov.json b/tests/fixtures/coverage-reports/real1/manifest_path.codecov.json index 66609a83..57c53526 100644 --- a/tests/fixtures/coverage-reports/real1/manifest_path.codecov.json +++ b/tests/fixtures/coverage-reports/real1/manifest_path.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/real1/package1.codecov.json b/tests/fixtures/coverage-reports/real1/package1.codecov.json index 66609a83..57c53526 100644 --- a/tests/fixtures/coverage-reports/real1/package1.codecov.json +++ b/tests/fixtures/coverage-reports/real1/package1.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/real1/workspace_root.codecov.json b/tests/fixtures/coverage-reports/real1/workspace_root.codecov.json index 7779981e..ae914624 100644 --- a/tests/fixtures/coverage-reports/real1/workspace_root.codecov.json +++ b/tests/fixtures/coverage-reports/real1/workspace_root.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/exclude-from-report1.codecov.json b/tests/fixtures/coverage-reports/virtual1/exclude-from-report1.codecov.json index b053e998..d64aaf3f 100644 --- a/tests/fixtures/coverage-reports/virtual1/exclude-from-report1.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/exclude-from-report1.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/exclude-from-report2.codecov.json b/tests/fixtures/coverage-reports/virtual1/exclude-from-report2.codecov.json index 825609b2..2ad302ab 100644 --- a/tests/fixtures/coverage-reports/virtual1/exclude-from-report2.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/exclude-from-report2.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/exclude-from-test1.codecov.json b/tests/fixtures/coverage-reports/virtual1/exclude-from-test1.codecov.json index c8454222..fb0b02f8 100644 --- a/tests/fixtures/coverage-reports/virtual1/exclude-from-test1.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/exclude-from-test1.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/exclude-from-test2.codecov.json b/tests/fixtures/coverage-reports/virtual1/exclude-from-test2.codecov.json index f55dc322..8fe2df01 100644 --- a/tests/fixtures/coverage-reports/virtual1/exclude-from-test2.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/exclude-from-test2.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/exclude1.codecov.json b/tests/fixtures/coverage-reports/virtual1/exclude1.codecov.json index c8454222..fb0b02f8 100644 --- a/tests/fixtures/coverage-reports/virtual1/exclude1.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/exclude1.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/exclude2.codecov.json b/tests/fixtures/coverage-reports/virtual1/exclude2.codecov.json index 825609b2..2ad302ab 100644 --- a/tests/fixtures/coverage-reports/virtual1/exclude2.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/exclude2.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/package1.codecov.json b/tests/fixtures/coverage-reports/virtual1/package1.codecov.json index 55193976..a17886ae 100644 --- a/tests/fixtures/coverage-reports/virtual1/package1.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/package1.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/package2.codecov.json b/tests/fixtures/coverage-reports/virtual1/package2.codecov.json index ab8820a5..6dc0f588 100644 --- a/tests/fixtures/coverage-reports/virtual1/package2.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/package2.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/package3.codecov.json b/tests/fixtures/coverage-reports/virtual1/package3.codecov.json index b014ca05..4bc22a59 100644 --- a/tests/fixtures/coverage-reports/virtual1/package3.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/package3.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/package4.codecov.json b/tests/fixtures/coverage-reports/virtual1/package4.codecov.json index 136b073f..d94835d2 100644 --- a/tests/fixtures/coverage-reports/virtual1/package4.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/package4.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/package5.codecov.json b/tests/fixtures/coverage-reports/virtual1/package5.codecov.json index 2fc16a44..709b9745 100644 --- a/tests/fixtures/coverage-reports/virtual1/package5.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/package5.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/package6.codecov.json b/tests/fixtures/coverage-reports/virtual1/package6.codecov.json index 1aadc431..20fd364a 100644 --- a/tests/fixtures/coverage-reports/virtual1/package6.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/package6.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file diff --git a/tests/fixtures/coverage-reports/virtual1/workspace_root.codecov.json b/tests/fixtures/coverage-reports/virtual1/workspace_root.codecov.json index d05013b4..967d9528 100644 --- a/tests/fixtures/coverage-reports/virtual1/workspace_root.codecov.json +++ b/tests/fixtures/coverage-reports/virtual1/workspace_root.codecov.json @@ -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"}}} \ No newline at end of file +{"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"}}} \ No newline at end of file