Skip to content

Commit 7fd573e

Browse files
committed
fix: fix relative git path issue when using working-directory
1 parent 921f4aa commit 7fd573e

File tree

11 files changed

+228
-53
lines changed

11 files changed

+228
-53
lines changed

Cargo.lock

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

crates/bencher_compat/benches/bencher_example.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,20 @@ pub fn b(bench: &mut Bencher) {
1212
bench.bytes = N as u64;
1313
}
1414

15-
benchmark_group!(benches, a, b);
15+
mod c {
16+
use super::*;
17+
18+
pub fn a(bench: &mut Bencher) {
19+
bench.iter(|| (0..100).fold(0, |x, y| black_box(x + y)))
20+
}
21+
22+
pub fn b(bench: &mut Bencher) {
23+
const N: usize = 1024;
24+
bench.iter(|| vec![0u8; N]);
25+
26+
bench.bytes = N as u64;
27+
}
28+
}
29+
30+
benchmark_group!(benches, a, b, c::a, c::b);
1631
benchmark_main!(benches);

crates/bencher_compat/src/compat.rs

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
1-
use codspeed::codspeed::{black_box, CodSpeed, WARMUP_RUNS};
1+
use codspeed::{
2+
codspeed::{black_box, CodSpeed, WARMUP_RUNS},
3+
utils::{get_formated_function_path, get_git_relative_path},
4+
};
25

36
pub struct Bencher {
47
pub bytes: u64,
58
codspeed: CodSpeed,
6-
current_uri: String,
9+
current_file: String,
10+
current_bench_path: String,
711
}
812

913
impl Bencher {
10-
pub fn set_current_uri(&mut self, uri: String) {
11-
self.current_uri = uri;
14+
pub fn set_current_file(&mut self, file: impl Into<String>) {
15+
self.current_file = file.into();
16+
}
17+
18+
pub fn set_current_bench_path(&mut self, bench: impl Into<String>) {
19+
self.current_bench_path = bench.into();
1220
}
1321

1422
pub fn push_group(&mut self, group: &str) {
@@ -23,11 +31,13 @@ impl Bencher {
2331
where
2432
F: FnMut() -> T,
2533
{
26-
let uri = self.current_uri.as_str();
34+
let file = get_git_relative_path(self.current_file.as_str());
35+
let bench_path = get_formated_function_path(self.current_bench_path.as_str());
36+
let uri = format!("{}::{}", file.to_string_lossy(), bench_path);
2737
for _ in 0..WARMUP_RUNS {
2838
black_box(inner());
2939
}
30-
self.codspeed.start_benchmark(uri);
40+
self.codspeed.start_benchmark(uri.as_str());
3141
black_box(inner());
3242
self.codspeed.end_benchmark();
3343
}
@@ -42,18 +52,20 @@ impl Default for Bencher {
4252
Bencher {
4353
bytes: 0,
4454
codspeed: CodSpeed::new(),
45-
current_uri: String::new(),
55+
current_file: String::new(),
56+
current_bench_path: String::new(),
4657
}
4758
}
4859
}
4960

5061
#[macro_export]
5162
macro_rules! benchmark_group {
52-
($group_name:ident, $($function:path),+) => {
63+
($group_name:ident, $( $function:path ),+ $(,)*) => {
5364
pub fn $group_name(bencher: &mut $crate::Bencher) {
5465
bencher.push_group(stringify!($group_name));
5566
$(
56-
bencher.set_current_uri($crate::codspeed_uri!($function));
67+
bencher.set_current_file(codspeed::abs_file!());
68+
bencher.set_current_bench_path(stringify!($function));
5769
$function(bencher);
5870
)+
5971
bencher.pop_group();

crates/bencher_compat/src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
pub use codspeed::codspeed_uri;
2-
31
#[cfg(not(codspeed))]
42
mod compat_bencher {
53
pub use bencher::*;

crates/codspeed/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ keywords = ["codspeed", "benchmark"]
1919
[dependencies]
2020
colored = "2.0.0"
2121
libc = "^0.2"
22+
serde_json = "1.0.104"
2223

2324
[[bench]]
2425
name = "native"
2526
harness = false
27+
28+
[dev-dependencies]
29+
tempfile = "3.7.0"

crates/codspeed/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ pub mod codspeed;
22
mod macros;
33
mod measurement;
44
mod request;
5+
pub mod utils;

crates/codspeed/src/macros.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
#[macro_export]
2+
macro_rules! abs_file {
3+
() => {
4+
codspeed::utils::get_cargo_workspace_root()
5+
.join(file!())
6+
.to_string_lossy()
7+
};
8+
}
9+
110
#[macro_export]
211
macro_rules! codspeed_uri {
312
( $name:ident ) => {

0 commit comments

Comments
 (0)