@@ -14,7 +14,10 @@ mod entry;
14
14
mod uri;
15
15
mod util;
16
16
17
+ use std:: { cell:: RefCell , rc:: Rc } ;
18
+
17
19
pub use bench:: * ;
20
+ use codspeed:: codspeed:: CodSpeed ;
18
21
19
22
pub fn main ( ) {
20
23
// Outlined steps of original divan::main and their equivalent in codspeed instrumented mode
@@ -31,6 +34,7 @@ pub fn main() {
31
34
// filtering is managed by the `cargo-codspeed` wrappers before we reach this point.
32
35
33
36
// 4. Scan the tree and execute benchmarks
37
+ let codspeed = Rc :: new ( RefCell :: new ( CodSpeed :: new ( ) ) ) ;
34
38
for entry in bench_entries. iter ( ) {
35
39
let entry_uri = uri:: generate ( entry. meta . display_name , & entry. meta ) ;
36
40
@@ -42,14 +46,14 @@ pub fn main() {
42
46
}
43
47
match entry. bench {
44
48
entry:: BenchEntryRunner :: Plain ( bench_fn) => {
45
- bench_fn ( bench:: Bencher :: new ( entry_uri) ) ;
49
+ bench_fn ( bench:: Bencher :: new ( & codspeed , entry_uri) ) ;
46
50
}
47
51
entry:: BenchEntryRunner :: Args ( bench_runner) => {
48
52
let bench_runner = bench_runner ( ) ;
49
53
50
54
for ( arg_index, arg_name) in bench_runner. arg_names ( ) . iter ( ) . enumerate ( ) {
51
55
let uri_with_arg = uri:: append_arg ( entry_uri. as_str ( ) , arg_name) ;
52
- let bencher = bench:: Bencher :: new ( uri_with_arg) ;
56
+ let bencher = bench:: Bencher :: new ( & codspeed , uri_with_arg) ;
53
57
54
58
bench_runner. bench ( bencher, arg_index) ;
55
59
}
0 commit comments