Work
Pratyush Mishra pratyushmishra@berkeley.edu
Thu, 10 Dec 2020 18:22:16 -0800
4 files changed,
31 insertions(+),
5 deletions(-)
M
curve-benches/src/macros/ec.rs
→
curve-benches/src/macros/ec.rs
@@ -186,7 +186,7 @@ tmp.serialize_unchecked(&mut bytes)
}); } - $crate::bencher::benchmark_group!( + $crate::benchmark_group!( group_ops, rand, mul_assign,
M
curve-benches/src/macros/field.rs
→
curve-benches/src/macros/field.rs
@@ -8,7 +8,7 @@ use super::*;
field_common!($f, $f_type); sqrt!($f, $f_type); prime_field!($f, $f_type, $f_repr, $f_repr_type); - $crate::bencher::benchmark_group!( + $crate::benchmark_group!( $modname, // common stuff add_assign,@@ -44,7 +44,7 @@ mod [<_ $modname>] {
use super::*; field_common!($f, $f_type); sqrt!($f, $f_type); - $crate::bencher::benchmark_group!( + $crate::benchmark_group!( $modname, // common stuff add_assign,@@ -71,7 +71,7 @@ crate::paste! {
mod [<_ $modname>] { use super::*; field_common!($f, $f_type); - $crate::bencher::benchmark_group!( + $crate::benchmark_group!( $modname, // common stuff add_assign,
M
curve-benches/src/macros/pairing.rs
→
curve-benches/src/macros/pairing.rs
@@ -65,7 +65,7 @@ tmp
}); } - $crate::bencher::benchmark_group!( + $crate::benchmark_group!( pairing, miller_loop, final_exponentiation,
M
curve-benches/src/macros/utils.rs
→
curve-benches/src/macros/utils.rs
@@ -8,3 +8,29 @@ ($tmp:ident, $func:ident) => {
$tmp.$func(); }; } + +/// Defines a function called `$group_name` that returns the test description +/// values for the listed functions `$function`. +#[macro_export] +macro_rules! benchmark_group { + ($group_name:ident, $($function:path),+) => { + pub fn $group_name() -> ::std::vec::Vec<$crate::TestDescAndFn> { + use $crate::{TestDescAndFn, TestFn, TestDesc}; + use std::borrow::Cow; + let mut benches = ::std::vec::Vec::new(); + $( + benches.push(TestDescAndFn { + desc: TestDesc { + name: Cow::from(module_path!().to_string() + "::" + stringify!($function)), + ignore: false, + }, + testfn: TestFn::StaticBenchFn($function), + }); + )+ + benches + } + }; + ($group_name:ident, $($function:path,)+) => { + benchmark_group!($group_name, $($function),+); + }; +}