@@ -14,7 +14,10 @@ mod entry;
1414mod uri;
1515mod util;
1616
17+ use std:: { cell:: RefCell , rc:: Rc } ;
18+
1719pub use bench:: * ;
20+ use codspeed:: codspeed:: CodSpeed ;
1821
1922pub fn main ( ) {
2023 // Outlined steps of original divan::main and their equivalent in codspeed instrumented mode
@@ -31,6 +34,7 @@ pub fn main() {
3134 // filtering is managed by the `cargo-codspeed` wrappers before we reach this point.
3235
3336 // 4. Scan the tree and execute benchmarks
37+ let codspeed = Rc :: new ( RefCell :: new ( CodSpeed :: new ( ) ) ) ;
3438 for entry in bench_entries. iter ( ) {
3539 let entry_uri = uri:: generate ( entry. meta . display_name , & entry. meta ) ;
3640
@@ -42,14 +46,14 @@ pub fn main() {
4246 }
4347 match entry. bench {
4448 entry:: BenchEntryRunner :: Plain ( bench_fn) => {
45- bench_fn ( bench:: Bencher :: new ( entry_uri) ) ;
49+ bench_fn ( bench:: Bencher :: new ( & codspeed , entry_uri) ) ;
4650 }
4751 entry:: BenchEntryRunner :: Args ( bench_runner) => {
4852 let bench_runner = bench_runner ( ) ;
4953
5054 for ( arg_index, arg_name) in bench_runner. arg_names ( ) . iter ( ) . enumerate ( ) {
5155 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) ;
5357
5458 bench_runner. bench ( bencher, arg_index) ;
5559 }
0 commit comments