Skip to content

Commit

Permalink
add codecov to testset
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewgazelka committed Mar 31, 2023
1 parent f6d4b45 commit ed1cb3a
Show file tree
Hide file tree
Showing 21 changed files with 726 additions and 18 deletions.
29 changes: 14 additions & 15 deletions src/json.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,26 +47,25 @@ pub struct CodeCovJsonExport {

impl From<Export> for CodeCovJsonExport {
fn from(value: Export) -> Self {
let files = value.files;
let functions = value.functions.unwrap_or_default();

let mut coverage = BTreeMap::new();

for func in functions {
for region in &func.regions {
let line_start = region.line_start();
let line_end = region.line_end();

let file = files.get(usize::try_from(region.file_id()).unwrap()).unwrap();
let filename = file.filename.clone();
let coverage = coverage.entry(filename).or_insert_with(BTreeMap::new);

for line in line_start..=line_end {
let coverage = coverage
.entry(line.to_string())
.or_insert_with(|| CodeCovCoverage { count: 0, covered: 0 });
coverage.count += 1;
coverage.covered += u64::from(region.execution_count() > 0);
for filename in func.filenames {
for region in &func.regions {
let line_start = region.line_start();
let line_end = region.line_end();

let coverage = coverage.entry(filename.clone()).or_insert_with(BTreeMap::new);

for line in line_start..=line_end {
let coverage = coverage
.entry(line.to_string())
.or_insert_with(|| CodeCovCoverage { count: 0, covered: 0 });
coverage.count += 1;
coverage.covered += u64::from(region.execution_count() > 0);
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -880,7 +880,7 @@ impl Format {
let cov = cmd.read()?;
let cov: LlvmCovJsonExport = serde_json::from_str(&cov)?;
let cov = CodeCovJsonExport::from(cov);
let out = serde_json::to_string(&cov)?;
let out = serde_json::to_string_pretty(&cov)?;

if let Some(output_path) = &cx.args.cov.output_path {
fs::write(output_path, out)?;
Expand Down
48 changes: 48 additions & 0 deletions tests/fixtures/coverage-reports/real1/all.codecov.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"coverage": {
"member1/member2/src/lib.rs": {
"1": "2/3",
"2": "1/2",
"3": "1/2",
"4": "0/2",
"5": "0/2",
"6": "0/2",
"8": "1/2"
},
"member1/src/lib.rs": {
"1": "2/3",
"2": "1/2",
"3": "1/2",
"4": "0/2",
"5": "0/2",
"6": "0/2",
"8": "1/2"
},
"src/lib.rs": {
"1": "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",
"4": "1/1",
"5": "1/1",
"6": "0/1",
"7": "1/1",
"8": "0/1",
"9": "1/1"
},
"src/tests/mod.rs": {
"10": "1/1",
"11": "1/1",
"12": "1/1",
"13": "1/1",
"14": "1/1",
"15": "1/1",
"9": "1/1"
}
}
}
22 changes: 22 additions & 0 deletions tests/fixtures/coverage-reports/real1/exclude.codecov.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"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"
}
}
}
13 changes: 13 additions & 0 deletions tests/fixtures/coverage-reports/real1/manifest_path.codecov.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"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"
}
}
}
13 changes: 13 additions & 0 deletions tests/fixtures/coverage-reports/real1/package1.codecov.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"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"
}
}
}
48 changes: 48 additions & 0 deletions tests/fixtures/coverage-reports/real1/workspace_root.codecov.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"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",
"11": "1/1",
"13": "1/1",
"14": "1/1",
"15": "1/1",
"16": "1/1",
"17": "1/1",
"18": "1/1",
"19": "1/1",
"4": "1/1",
"5": "1/1",
"6": "0/1",
"7": "1/1",
"8": "0/1",
"9": "1/1"
},
"src/tests/mod.rs": {
"10": "1/1",
"11": "1/1",
"12": "1/1",
"13": "1/1",
"14": "1/1",
"15": "1/1",
"9": "1/1"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"coverage": {
"member1/src/lib.rs": {
"1": "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",
"2": "1/1",
"3": "0/1",
"4": "1/1",
"5": "0/1",
"6": "1/1",
"8": "1/1"
},
"member2/member3/src/lib.rs": {
"1": "2/3",
"2": "1/2",
"3": "1/2",
"4": "0/2",
"5": "0/2",
"6": "0/2",
"8": "1/2"
},
"member2/src/lib.rs": {
"1": "2/3",
"10": "1/2",
"11": "1/2",
"12": "1/2",
"13": "0/2",
"14": "1/2",
"15": "0/2",
"17": "1/2",
"19": "1/1",
"2": "1/2",
"20": "1/1",
"21": "1/1",
"22": "1/1",
"23": "1/1",
"3": "1/2",
"4": "0/2",
"5": "0/2",
"6": "0/2",
"8": "1/2"
},
"member2/src/member4/src/lib.rs": {
"1": "2/3",
"2": "1/2",
"3": "1/2",
"4": "0/2",
"5": "0/2",
"6": "0/2",
"8": "1/2"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"coverage": {
"member1/src/lib.rs": {
"1": "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",
"2": "1/1",
"3": "0/1",
"4": "1/1",
"5": "0/1",
"6": "1/1",
"8": "1/1"
},
"member2/member3/src/lib.rs": {
"1": "2/3",
"2": "1/2",
"3": "1/2",
"4": "0/2",
"5": "0/2",
"6": "0/2",
"8": "1/2"
},
"member2/src/lib.rs": {
"1": "2/3",
"10": "1/2",
"11": "1/2",
"12": "1/2",
"13": "0/2",
"14": "1/2",
"15": "0/2",
"17": "1/2",
"19": "1/1",
"2": "1/2",
"20": "1/1",
"21": "1/1",
"22": "1/1",
"23": "1/1",
"3": "1/2",
"4": "0/2",
"5": "0/2",
"6": "0/2",
"8": "1/2"
},
"member2/src/member4/src/lib.rs": {
"1": "2/3",
"2": "1/2",
"3": "1/2",
"4": "0/2",
"5": "0/2",
"6": "0/2",
"8": "1/2"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"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",
"10": "1/1",
"11": "1/1",
"12": "1/1",
"13": "0/1",
"14": "1/1",
"15": "0/1",
"17": "1/1",
"19": "1/1",
"2": "0/1",
"20": "1/1",
"21": "1/1",
"22": "1/1",
"23": "1/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"
}
}
}
Loading

0 comments on commit ed1cb3a

Please sign in to comment.