Skip to content
This repository was archived by the owner on Nov 1, 2023. It is now read-only.

Commit 3f865e2

Browse files
authored
Add sourceline output and logging to coverage example (#2753)
1 parent 62a0dd6 commit 3f865e2

File tree

3 files changed

+96
-9
lines changed

3 files changed

+96
-9
lines changed

src/agent/Cargo.lock

Lines changed: 73 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/agent/coverage/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ procfs = { version = "0.12", default-features = false, features=["flate2"] }
2424

2525
[dev-dependencies]
2626
clap = { version = "4.0", features = ["derive"] }
27+
env_logger = "0.10.0"
2728
pretty_assertions = "1.3.0"

src/agent/coverage/examples/coverage.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ struct Args {
1919
#[arg(short, long)]
2020
timeout: Option<u64>,
2121

22+
#[arg(short, long)]
23+
source: bool,
24+
2225
command: Vec<String>,
2326
}
2427

@@ -27,6 +30,8 @@ const DEFAULT_TIMEOUT: Duration = Duration::from_secs(5);
2730
fn main() -> Result<()> {
2831
let args = Args::parse();
2932

33+
env_logger::init();
34+
3035
let timeout = args
3136
.timeout
3237
.map(Duration::from_millis)
@@ -54,7 +59,11 @@ fn main() -> Result<()> {
5459
.timeout(timeout)
5560
.record()?;
5661

57-
dump_modoff(&recorded.coverage)?;
62+
if args.source {
63+
dump_source_line(&recorded.coverage)?;
64+
} else {
65+
dump_modoff(&recorded.coverage)?;
66+
}
5867

5968
Ok(())
6069
}
@@ -70,3 +79,15 @@ fn dump_modoff(coverage: &BinaryCoverage) -> Result<()> {
7079

7180
Ok(())
7281
}
82+
83+
fn dump_source_line(binary: &BinaryCoverage) -> Result<()> {
84+
let source = coverage::source::binary_to_source_coverage(binary)?;
85+
86+
for (path, file) in &source.files {
87+
for (line, count) in &file.lines {
88+
println!("{}:{} {}", path, line.number(), count.0);
89+
}
90+
}
91+
92+
Ok(())
93+
}

0 commit comments

Comments
 (0)