Create a macro which automates creation of benchmark test suites. (#8104)

* Create a macro which automates creation of benchmark test suites.

* bump impl_version

* allow unused on test_bench_by_name

* use proper doctest ignore attribute

* Explicitly hand the Module to the test suite

Much better practice than depending on it showing up implicitly in
the namespace.

* explicitly import what we need into `mod tests`

* bench_module is `ident` not `tt`

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>

* allow end users to specify arguments for new_test_ext

This turned out to be surprisingly easy. On reflection, it turns out
that of course the compiler can't eagerly evaluate the function call,
but needs to paste it in everywhere desired.

* enable explicitly specifying the path to the benchmarks invocation

also enable optional trailing commas

* Revert "bump impl_version"

This reverts commit 0209e4de33fd43873f8cfc6875815d0fd6151e63.

* list failing benchmark tests and the errors which caused the failure

* harden benchmark tests against internal panics

* suppress warning about ignored profiles

unfortunately, setting the profile here doesn't do anything; we'd
need to set it in every leaf package anyway. However, as this was
just making the default explicit anyway, I think it's safe enough
to remove entirely.

* impl_benchmark_test_suite for assets

* impl_benchmark_test_suite for balances

* impl_benchmark_test_suite for bounties

* impl_benchmark_test_suite for Collective

* impl_benchmark_test_suite for Contracts

* impl_benchmark_test_suite for Democracy

* don't impl_benchmark_test_suite for Elections-Phragmen

* impl_benchmark_test_suite for Identity

Note that Identity tests currently fail. They failed in an identical
way before this change, so as far as I'm concerned, the status quo is
good enough for now.

* impl_benchmark_test_suite for ImOnline

* impl_benchmark_test_suite for indices

For this crate also, the test suite fails identically with and without
this change, so we can say that this change is not the cause of the
tests' failure to compile.

* impl_benchmark_test_suite for lottery

* impl_benchmark_test_suite for merkle-mountain-range

* impl_benchmark_test_suite for Multisig

These tests fail identically with and without the change, so the change
seems unlikely to be the origin of the failures.

* impl_benchmark_test_suite for offences

* impl_benchmark_test_suite for Proxy

Fails identically with and without this change.

* impl_benchmark_test_suite for scheduler

* impl_benchmark_test_suite for session

It turns out to be important to be able to exclude items marked
`#[extra]` sometimes. Who knew?

* impl_benchmark_test_suite for staking

* impl_benchmark_test_suite for system

* impl_benchmark_test_suite for timestamp

* impl_benchmark_test_suite for tips

* impl_benchmark_test_suite for treasury

* impl_benchmark_test_suite for utility

Note that benchmark tests fail identically before and after this change.

* impl_benchmark_test_suite for vesting

* fix wrong module name in impl_benchmark_test_suite in Offences

* address line length nits

* enable optional keyword argument: exec_name

Took a _lot_ of macro-wrangling to get the functionality that I want,
but now you have the option to pass in

```rust
impl_benchmark_test_suite!(
	Elections,
	crate::tests::ExtBuilder::default().desired_members(13).desired_runners_up(7),
	crate::tests::Test,
	exec_name = build_and_execute,
);
```

and have it expand out properly. A selected fragment of the expansion:

```rust
        fn test_benchmarks() {
            crate::tests::ExtBuilder::default()
                .desired_members(13)
                .desired_runners_up(7)
                .build_and_execute(|| {
```

* get rid of dead code

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
This commit is contained in:
Peter Goodspeed-Niklaus
2021-02-16 10:01:20 +01:00
committed by GitHub
parent 24739d1ab0
commit 44d5aba80d
26 changed files with 418 additions and 868 deletions
+2 -118
View File
@@ -20,7 +20,7 @@
use super::*;
use sp_runtime::traits::Bounded;
use frame_system::RawOrigin as SystemOrigin;
use frame_benchmarking::{benchmarks, account, whitelisted_caller};
use frame_benchmarking::{benchmarks, account, whitelisted_caller, impl_benchmark_test_suite};
use frame_support::traits::Get;
use crate::Module as Assets;
@@ -233,120 +233,4 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
#[test]
fn create() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_create::<Test>().is_ok());
});
}
#[test]
fn force_create() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_force_create::<Test>().is_ok());
});
}
#[test]
fn destroy() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_destroy::<Test>().is_ok());
});
}
#[test]
fn force_destroy() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_force_destroy::<Test>().is_ok());
});
}
#[test]
fn mint() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_mint::<Test>().is_ok());
});
}
#[test]
fn burn() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_burn::<Test>().is_ok());
});
}
#[test]
fn transfer() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_transfer::<Test>().is_ok());
});
}
#[test]
fn force_transfer() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_force_transfer::<Test>().is_ok());
});
}
#[test]
fn freeze() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_freeze::<Test>().is_ok());
});
}
#[test]
fn thaw() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_thaw::<Test>().is_ok());
});
}
#[test]
fn freeze_asset() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_freeze_asset::<Test>().is_ok());
});
}
#[test]
fn thaw_asset() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_thaw_asset::<Test>().is_ok());
});
}
#[test]
fn transfer_ownership() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_transfer_ownership::<Test>().is_ok());
});
}
#[test]
fn set_team() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_set_team::<Test>().is_ok());
});
}
#[test]
fn set_max_zombies() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_set_max_zombies::<Test>().is_ok());
});
}
#[test]
fn set_metadata() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_set_metadata::<Test>().is_ok());
});
}
}
impl_benchmark_test_suite!(Assets, crate::tests::new_test_ext(), crate::tests::Test);
+6 -49
View File
@@ -22,7 +22,7 @@
use super::*;
use frame_system::RawOrigin;
use frame_benchmarking::{benchmarks, account, whitelisted_caller};
use frame_benchmarking::{benchmarks, account, whitelisted_caller, impl_benchmark_test_suite};
use sp_runtime::traits::Bounded;
use crate::Module as Balances;
@@ -144,51 +144,8 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests_composite::{ExtBuilder, Test};
use frame_support::assert_ok;
#[test]
fn transfer() {
ExtBuilder::default().build().execute_with(|| {
assert_ok!(test_benchmark_transfer::<Test>());
});
}
#[test]
fn transfer_best_case() {
ExtBuilder::default().build().execute_with(|| {
assert_ok!(test_benchmark_transfer_best_case::<Test>());
});
}
#[test]
fn transfer_keep_alive() {
ExtBuilder::default().build().execute_with(|| {
assert_ok!(test_benchmark_transfer_keep_alive::<Test>());
});
}
#[test]
fn transfer_set_balance_creating() {
ExtBuilder::default().build().execute_with(|| {
assert_ok!(test_benchmark_set_balance_creating::<Test>());
});
}
#[test]
fn transfer_set_balance_killing() {
ExtBuilder::default().build().execute_with(|| {
assert_ok!(test_benchmark_set_balance_killing::<Test>());
});
}
#[test]
fn force_transfer() {
ExtBuilder::default().build().execute_with(|| {
assert_ok!(test_benchmark_force_transfer::<Test>());
});
}
}
impl_benchmark_test_suite!(
Balances,
crate::tests_composite::ExtBuilder::default().build(),
crate::tests_composite::Test,
);
+260 -2
View File
@@ -830,6 +830,31 @@ macro_rules! impl_benchmark {
return Ok(results);
}
}
/// Test a particular benchmark by name.
///
/// This isn't called `test_benchmark_by_name` just in case some end-user eventually
/// writes a benchmark, itself called `by_name`; the function would be shadowed in
/// that case.
///
/// This is generally intended to be used by child test modules such as those created
/// by the `impl_benchmark_test_suite` macro. However, it is not an error if a pallet
/// author chooses not to implement benchmarks.
#[cfg(test)]
#[allow(unused)]
fn test_bench_by_name<T>(name: &[u8]) -> Result<(), &'static str>
where
T: Config + frame_system::Config, $( $where_clause )*
{
let name = sp_std::str::from_utf8(name)
.map_err(|_| "`name` is not a valid utf8 string!")?;
match name {
$( stringify!($name) => {
$crate::paste::paste! { [< test_benchmark_ $name >]::<T>() }
} )*
_ => Err("Could not find test for requested benchmark."),
}
}
};
}
@@ -903,6 +928,239 @@ macro_rules! impl_benchmark_test {
};
}
/// This creates a test suite which runs the module's benchmarks.
///
/// When called in [`pallet_example`] as
///
/// ```rust,ignore
/// impl_benchmark_test_suite!(Module, crate::tests::new_test_ext(), crate::tests::Test);
/// ```
///
/// It expands to the equivalent of:
///
/// ```rust,ignore
/// #[cfg(test)]
/// mod tests {
/// use super::*;
/// use crate::tests::{new_test_ext, Test};
/// use frame_support::assert_ok;
///
/// #[test]
/// fn test_benchmarks() {
/// new_test_ext().execute_with(|| {
/// assert_ok!(test_benchmark_accumulate_dummy::<Test>());
/// assert_ok!(test_benchmark_set_dummy::<Test>());
/// assert_ok!(test_benchmark_another_set_dummy::<Test>());
/// assert_ok!(test_benchmark_sort_vector::<Test>());
/// });
/// }
/// }
/// ```
///
/// ## Arguments
///
/// The first argument, `module`, must be the path to this crate's module.
///
/// The second argument, `new_test_ext`, must be a function call which returns either a
/// `sp_io::TestExternalities`, or some other type with a similar interface.
///
/// Note that this function call is _not_ evaluated at compile time, but is instead copied textually
/// into each appropriate invocation site.
///
/// The third argument, `test`, must be the path to the runtime. The item to which this must refer
/// will generally take the form:
///
/// ```rust,ignore
/// frame_support::construct_runtime!(
/// pub enum Test where ...
/// { ... }
/// );
/// ```
///
/// There is an optional fourth argument, with keyword syntax: `benchmarks_path = path_to_benchmarks_invocation`.
/// In the typical case in which this macro is in the same module as the `benchmarks!` invocation,
/// you don't need to supply this. However, if the `impl_benchmark_test_suite!` invocation is in a
/// different module than the `benchmarks!` invocation, then you should provide the path to the
/// module containing the `benchmarks!` invocation:
///
/// ```rust,ignore
/// mod benches {
/// benchmarks!{
/// ...
/// }
/// }
///
/// mod tests {
/// // because of macro syntax limitations, neither Module nor benches can be paths, but both have
/// // to be idents in the scope of `impl_benchmark_test_suite`.
/// use crate::{benches, Module};
///
/// impl_benchmark_test_suite!(Module, new_test_ext(), Test, benchmarks_path = benches);
///
/// // new_test_ext and the Test item are defined later in this module
/// }
/// ```
///
/// There is an optional fifth argument, with keyword syntax: `extra = true` or `extra = false`.
/// By default, this generates a test suite which iterates over all benchmarks, including those
/// marked with the `#[extra]` annotation. Setting `extra = false` excludes those.
///
/// There is an optional sixth argument, with keyword syntax: `exec_name = custom_exec_name`.
/// By default, this macro uses `execute_with` for this parameter. This argument, if set, is subject
/// to these restrictions:
///
/// - It must be the name of a method applied to the output of the `new_test_ext` argument.
/// - That method must have a signature capable of receiving a single argument of the form `impl FnOnce()`.
///
// ## Notes (not for rustdoc)
//
// The biggest challenge for this macro is communicating the actual test functions to be run. We
// can't just build an array of function pointers to each test function and iterate over it, because
// the test functions are parameterized by the `Test` type. That's incompatible with
// monomorphization: if it were legal, then even if the compiler detected and monomorphized the
// functions into only the types of the callers, which implementation would the function pointer
// point to? There would need to be some kind of syntax for selecting the destination of the pointer
// according to a generic argument, and in general it would be a huge mess and not worth it.
//
// Instead, we're going to steal a trick from `fn run_benchmark`: generate a function which is
// itself parametrized by `Test`, which accepts a `&[u8]` parameter containing the name of the
// benchmark, and dispatches based on that to the appropriate real test implementation. Then, we can
// just iterate over the `Benchmarking::benchmarks` list to run the actual implementations.
#[macro_export]
macro_rules! impl_benchmark_test_suite {
// user might or might not have set some keyword arguments; set the defaults
//
// The weird syntax indicates that `rest` comes only after a comma, which is otherwise optional
(
$bench_module:ident,
$new_test_ext:expr,
$test:path
$(, $( $rest:tt )* )?
) => {
impl_benchmark_test_suite!(
@selected:
$bench_module,
$new_test_ext,
$test,
benchmarks_path = super,
extra = true,
exec_name = execute_with,
@user:
$( $( $rest )* )?
);
};
// pick off the benchmarks_path keyword argument
(
@selected:
$bench_module:ident,
$new_test_ext:expr,
$test:path,
benchmarks_path = $old:ident,
extra = $extra:expr,
exec_name = $exec_name:ident,
@user:
benchmarks_path = $benchmarks_path:ident
$(, $( $rest:tt )* )?
) => {
impl_benchmark_test_suite!(
@selected:
$bench_module,
$new_test_ext,
$test,
benchmarks_path = $benchmarks_path,
extra = $extra,
exec_name = $exec_name,
@user:
$( $( $rest )* )?
);
};
// pick off the extra keyword argument
(
@selected:
$bench_module:ident,
$new_test_ext:expr,
$test:path,
benchmarks_path = $benchmarks_path:ident,
extra = $old:expr,
exec_name = $exec_name:ident,
@user:
extra = $extra:expr
$(, $( $rest:tt )* )?
) => {
impl_benchmark_test_suite!(
@selected:
$bench_module,
$new_test_ext,
$test,
benchmarks_path = $benchmarks_path,
extra = $extra,
exec_name = $exec_name,
@user:
$( $( $rest )* )?
);
};
// pick off the exec_name keyword argument
(
@selected:
$bench_module:ident,
$new_test_ext:expr,
$test:path,
benchmarks_path = $benchmarks_path:ident,
extra = $extra:expr,
exec_name = $old:ident,
@user:
exec_name = $exec_name:ident
$(, $( $rest:tt )* )?
) => {
impl_benchmark_test_suite!(
@selected:
$bench_module,
$new_test_ext,
$test,
benchmarks_path = $benchmarks_path,
extra = $extra,
exec_name = $exec_name,
@user:
$( $( $rest )* )?
);
};
// all options set; nothing else in user-provided keyword arguments
(
@selected:
$bench_module:ident,
$new_test_ext:expr,
$test:path,
benchmarks_path = $path_to_benchmarks_invocation:ident,
extra = $extra:expr,
exec_name = $exec_name:ident,
@user:
$(,)?
) => {
#[cfg(test)]
mod benchmark_tests {
use $path_to_benchmarks_invocation::test_bench_by_name;
use super::$bench_module;
#[test]
fn test_benchmarks() {
$new_test_ext.$exec_name(|| {
use $crate::Benchmarking;
let mut anything_failed = false;
println!("failing benchmark tests:");
for benchmark_name in $bench_module::<$test>::benchmarks($extra) {
if let Err(err) = std::panic::catch_unwind(|| test_bench_by_name::<$test>(benchmark_name)) {
println!("{}: {:?}", String::from_utf8_lossy(benchmark_name), err);
anything_failed = true;
}
}
assert!(!anything_failed);
});
}
}
};
}
/// show error message and debugging info for the case of an error happening
/// during a benchmark
pub fn show_benchmark_debug_info(
@@ -1031,7 +1289,7 @@ macro_rules! add_benchmark {
*repeat,
whitelist,
*verify,
).map_err(|e| {
).map_err(|e| {
$crate::show_benchmark_debug_info(
instance_string,
benchmark,
@@ -1058,7 +1316,7 @@ macro_rules! add_benchmark {
*repeat,
whitelist,
*verify,
).map_err(|e| {
).map_err(|e| {
$crate::show_benchmark_debug_info(
instance_string,
benchmark,
+6 -24
View File
@@ -23,7 +23,7 @@ use super::*;
use sp_runtime::traits::Bounded;
use frame_system::{EventRecord, RawOrigin};
use frame_benchmarking::{benchmarks, account, whitelisted_caller};
use frame_benchmarking::{benchmarks, account, whitelisted_caller, impl_benchmark_test_suite};
use frame_support::traits::OnInitialize;
use crate::Module as Bounties;
@@ -220,26 +220,8 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_propose_bounty::<Test>());
assert_ok!(test_benchmark_approve_bounty::<Test>());
assert_ok!(test_benchmark_propose_curator::<Test>());
assert_ok!(test_benchmark_unassign_curator::<Test>());
assert_ok!(test_benchmark_accept_curator::<Test>());
assert_ok!(test_benchmark_award_bounty::<Test>());
assert_ok!(test_benchmark_claim_bounty::<Test>());
assert_ok!(test_benchmark_close_bounty_proposed::<Test>());
assert_ok!(test_benchmark_close_bounty_active::<Test>());
assert_ok!(test_benchmark_extend_bounty_expiry::<Test>());
assert_ok!(test_benchmark_spend_funds::<Test>());
});
}
}
impl_benchmark_test_suite!(
Bounties,
crate::tests::new_test_ext(),
crate::tests::Test,
);
+11 -78
View File
@@ -21,7 +21,12 @@ use super::*;
use frame_system::RawOrigin as SystemOrigin;
use frame_system::EventRecord;
use frame_benchmarking::{benchmarks_instance, account, whitelisted_caller};
use frame_benchmarking::{
benchmarks_instance,
account,
whitelisted_caller,
impl_benchmark_test_suite,
};
use sp_runtime::traits::Bounded;
use sp_std::mem::size_of;
@@ -42,7 +47,6 @@ fn assert_last_event<T: Config<I>, I: Instance>(generic_event: <T as Config<I>>:
}
benchmarks_instance! {
set_members {
let m in 1 .. T::MaxMembers::get();
let n in 1 .. T::MaxMembers::get();
@@ -634,79 +638,8 @@ benchmarks_instance! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn set_members() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_set_members::<Test>());
});
}
#[test]
fn execute() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_execute::<Test>());
});
}
#[test]
fn propose_execute() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_propose_execute::<Test>());
});
}
#[test]
fn propose_proposed() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_propose_proposed::<Test>());
});
}
#[test]
fn vote() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_vote::<Test>());
});
}
#[test]
fn close_early_disapproved() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_close_early_disapproved::<Test>());
});
}
#[test]
fn close_early_approved() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_close_early_approved::<Test>());
});
}
#[test]
fn close_disapproved() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_close_disapproved::<Test>());
});
}
#[test]
fn close_approved() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_close_approved::<Test>());
});
}
#[test]
fn disapprove_proposal() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_disapprove_proposal::<Test>());
});
}
}
impl_benchmark_test_suite!(
Collective,
crate::tests::new_test_ext(),
crate::tests::Test,
);
@@ -36,7 +36,7 @@ use self::{
},
sandbox::Sandbox,
};
use frame_benchmarking::{benchmarks, account, whitelisted_caller};
use frame_benchmarking::{benchmarks, account, whitelisted_caller, impl_benchmark_test_suite};
use frame_system::{Module as System, RawOrigin};
use parity_wasm::elements::{Instruction, ValueType, BlockType};
use sp_runtime::traits::{Hash, Bounded, Zero};
@@ -2440,127 +2440,10 @@ benchmarks! {
}: {}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{ExtBuilder, Test};
use frame_support::assert_ok;
use paste::paste;
macro_rules! create_test {
($name:ident) => {
#[test]
fn $name() {
ExtBuilder::default().build().execute_with(|| {
assert_ok!(paste!{
[<test_benchmark_ $name>]::<Test>()
});
});
}
}
}
create_test!(on_initialize);
create_test!(on_initialize_per_trie_key);
create_test!(on_initialize_per_queue_item);
create_test!(update_schedule);
create_test!(instantiate_with_code);
create_test!(instantiate);
create_test!(call);
create_test!(claim_surcharge);
create_test!(seal_caller);
create_test!(seal_address);
create_test!(seal_gas_left);
create_test!(seal_balance);
create_test!(seal_value_transferred);
create_test!(seal_minimum_balance);
create_test!(seal_tombstone_deposit);
create_test!(seal_rent_allowance);
create_test!(seal_block_number);
create_test!(seal_now);
create_test!(seal_weight_to_fee);
create_test!(seal_gas);
create_test!(seal_input);
create_test!(seal_input_per_kb);
create_test!(seal_return);
create_test!(seal_return_per_kb);
create_test!(seal_terminate);
create_test!(seal_restore_to);
create_test!(seal_restore_to_per_delta);
create_test!(seal_random);
create_test!(seal_deposit_event);
create_test!(seal_deposit_event_per_topic_and_kb);
create_test!(seal_set_rent_allowance);
create_test!(seal_set_storage);
create_test!(seal_set_storage_per_kb);
create_test!(seal_get_storage);
create_test!(seal_get_storage_per_kb);
create_test!(seal_transfer);
create_test!(seal_call);
create_test!(seal_call_per_transfer_input_output_kb);
create_test!(seal_instantiate);
create_test!(seal_instantiate_per_input_output_salt_kb);
create_test!(seal_clear_storage);
create_test!(seal_hash_sha2_256);
create_test!(seal_hash_sha2_256_per_kb);
create_test!(seal_hash_keccak_256);
create_test!(seal_hash_keccak_256_per_kb);
create_test!(seal_hash_blake2_256);
create_test!(seal_hash_blake2_256_per_kb);
create_test!(seal_hash_blake2_128);
create_test!(seal_hash_blake2_128_per_kb);
create_test!(instr_i64const);
create_test!(instr_i64load);
create_test!(instr_i64store);
create_test!(instr_select);
create_test!(instr_if);
create_test!(instr_br);
create_test!(instr_br_if);
create_test!(instr_br_table);
create_test!(instr_br_table_per_entry);
create_test!(instr_call);
create_test!(instr_call_indirect);
create_test!(instr_call_indirect_per_param);
create_test!(instr_local_get);
create_test!(instr_local_set);
create_test!(instr_local_tee);
create_test!(instr_global_get);
create_test!(instr_global_set);
create_test!(instr_memory_current);
create_test!(instr_memory_grow);
create_test!(instr_i64clz);
create_test!(instr_i64ctz);
create_test!(instr_i64popcnt);
create_test!(instr_i64eqz);
create_test!(instr_i64extendsi32);
create_test!(instr_i64extendui32);
create_test!(instr_i32wrapi64);
create_test!(instr_i64eq);
create_test!(instr_i64ne);
create_test!(instr_i64lts);
create_test!(instr_i64ltu);
create_test!(instr_i64gts);
create_test!(instr_i64gtu);
create_test!(instr_i64les);
create_test!(instr_i64leu);
create_test!(instr_i64ges);
create_test!(instr_i64geu);
create_test!(instr_i64add);
create_test!(instr_i64sub);
create_test!(instr_i64mul);
create_test!(instr_i64divs);
create_test!(instr_i64divu);
create_test!(instr_i64rems);
create_test!(instr_i64remu);
create_test!(instr_i64and);
create_test!(instr_i64or);
create_test!(instr_i64xor);
create_test!(instr_i64shl);
create_test!(instr_i64shrs);
create_test!(instr_i64shru);
create_test!(instr_i64rotl);
create_test!(instr_i64rotr);
}
impl_benchmark_test_suite!(
Contracts,
crate::tests::ExtBuilder::default().build(),
crate::tests::Test,
);
+6 -41
View File
@@ -19,7 +19,7 @@
use super::*;
use frame_benchmarking::{benchmarks, account, whitelist_account};
use frame_benchmarking::{benchmarks, account, whitelist_account, impl_benchmark_test_suite};
use frame_support::{
IterableStorageMap,
traits::{Currency, Get, EnsureOrigin, OnInitialize, UnfilteredDispatchable, schedule::DispatchTime},
@@ -781,44 +781,9 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_propose::<Test>());
assert_ok!(test_benchmark_second::<Test>());
assert_ok!(test_benchmark_vote_new::<Test>());
assert_ok!(test_benchmark_vote_existing::<Test>());
assert_ok!(test_benchmark_emergency_cancel::<Test>());
assert_ok!(test_benchmark_external_propose::<Test>());
assert_ok!(test_benchmark_external_propose_majority::<Test>());
assert_ok!(test_benchmark_external_propose_default::<Test>());
assert_ok!(test_benchmark_fast_track::<Test>());
assert_ok!(test_benchmark_veto_external::<Test>());
assert_ok!(test_benchmark_cancel_referendum::<Test>());
assert_ok!(test_benchmark_cancel_queued::<Test>());
assert_ok!(test_benchmark_on_initialize_external::<Test>());
assert_ok!(test_benchmark_on_initialize_public::<Test>());
assert_ok!(test_benchmark_on_initialize_base::<Test>());
assert_ok!(test_benchmark_delegate::<Test>());
assert_ok!(test_benchmark_undelegate::<Test>());
assert_ok!(test_benchmark_clear_public_proposals::<Test>());
assert_ok!(test_benchmark_note_preimage::<Test>());
assert_ok!(test_benchmark_note_imminent_preimage::<Test>());
assert_ok!(test_benchmark_reap_preimage::<Test>());
assert_ok!(test_benchmark_unlock_remove::<Test>());
assert_ok!(test_benchmark_unlock_set::<Test>());
assert_ok!(test_benchmark_remove_vote::<Test>());
assert_ok!(test_benchmark_remove_other_vote::<Test>());
assert_ok!(test_benchmark_enact_proposal_execute::<Test>());
assert_ok!(test_benchmark_enact_proposal_slash::<Test>());
assert_ok!(test_benchmark_blacklist::<Test>());
assert_ok!(test_benchmark_cancel_proposal::<Test>());
});
}
}
impl_benchmark_test_suite!(
Democracy,
crate::tests::new_test_ext(),
crate::tests::Test,
);
@@ -22,7 +22,7 @@
use super::*;
use frame_system::RawOrigin;
use frame_benchmarking::{benchmarks, account};
use frame_benchmarking::{benchmarks, account, impl_benchmark_test_suite};
use frame_support::traits::OnInitialize;
use crate::Module as Elections;
@@ -536,84 +536,9 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{ExtBuilder, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks_elections_phragmen() {
ExtBuilder::default()
.desired_members(13)
.desired_runners_up(7)
.build_and_execute(|| {
assert_ok!(test_benchmark_vote_equal::<Test>());
});
ExtBuilder::default()
.desired_members(13)
.desired_runners_up(7)
.build_and_execute(|| {
assert_ok!(test_benchmark_vote_more::<Test>());
});
ExtBuilder::default()
.desired_members(13)
.desired_runners_up(7)
.build_and_execute(|| {
assert_ok!(test_benchmark_vote_less::<Test>());
});
ExtBuilder::default()
.desired_members(13)
.desired_runners_up(7)
.build_and_execute(|| {
assert_ok!(test_benchmark_remove_voter::<Test>());
});
ExtBuilder::default().desired_members(13).desired_runners_up(7).build_and_execute(|| {
assert_ok!(test_benchmark_submit_candidacy::<Test>());
});
ExtBuilder::default().desired_members(13).desired_runners_up(7).build_and_execute(|| {
assert_ok!(test_benchmark_renounce_candidacy_candidate::<Test>());
});
ExtBuilder::default().desired_members(13).desired_runners_up(7).build_and_execute(|| {
assert_ok!(test_benchmark_renounce_candidacy_runners_up::<Test>());
});
ExtBuilder::default().desired_members(13).desired_runners_up(7).build_and_execute(|| {
assert_ok!(test_benchmark_renounce_candidacy_members::<Test>());
});
ExtBuilder::default().desired_members(13).desired_runners_up(7).build_and_execute(|| {
assert_ok!(test_benchmark_remove_member_without_replacement::<Test>());
});
ExtBuilder::default().desired_members(13).desired_runners_up(7).build_and_execute(|| {
assert_ok!(test_benchmark_remove_member_with_replacement::<Test>());
});
ExtBuilder::default().desired_members(13).desired_runners_up(7).build_and_execute(|| {
assert_ok!(test_benchmark_clean_defunct_voters::<Test>());
});
ExtBuilder::default().desired_members(13).desired_runners_up(7).build_and_execute(|| {
assert_ok!(test_benchmark_election_phragmen::<Test>());
});
ExtBuilder::default().desired_members(13).desired_runners_up(7).build_and_execute(|| {
assert_ok!(test_benchmark_election_phragmen::<Test>());
});
ExtBuilder::default().desired_members(13).desired_runners_up(7).build_and_execute(|| {
assert_ok!(test_benchmark_election_phragmen_c_e::<Test>());
});
ExtBuilder::default().desired_members(13).desired_runners_up(7).build_and_execute(|| {
assert_ok!(test_benchmark_election_phragmen_v::<Test>());
});
}
}
impl_benchmark_test_suite!(
Elections,
crate::tests::ExtBuilder::default().desired_members(13).desired_runners_up(7),
crate::tests::Test,
exec_name = build_and_execute,
);
+3 -18
View File
@@ -577,7 +577,7 @@ impl<T: Config> Module<T> {
//
// Note that a signed extension can also indicate that a particular data must be present in the
// _signing payload_ of a transaction by providing an implementation for the `additional_signed`
// method. This example will not cover this type of extension. See `CheckSpecVersion` in
// method. This example will not cover this type of extension. See `CheckSpecVersion` in
// [FRAME System](https://github.com/paritytech/substrate/tree/master/frame/system#signed-extensions)
// for an example.
//
@@ -652,7 +652,7 @@ where
#[cfg(feature = "runtime-benchmarks")]
mod benchmarking {
use super::*;
use frame_benchmarking::{benchmarks, account};
use frame_benchmarking::{benchmarks, account, impl_benchmark_test_suite};
use frame_system::RawOrigin;
benchmarks!{
@@ -684,22 +684,7 @@ mod benchmarking {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_accumulate_dummy::<Test>());
assert_ok!(test_benchmark_set_dummy::<Test>());
assert_ok!(test_benchmark_another_set_dummy::<Test>());
assert_ok!(test_benchmark_sort_vector::<Test>());
});
}
}
impl_benchmark_test_suite!(Module, crate::tests::new_test_ext(), crate::tests::Test);
}
#[cfg(test)]
+6 -29
View File
@@ -22,7 +22,7 @@
use super::*;
use frame_system::{EventRecord, RawOrigin};
use frame_benchmarking::{benchmarks, account, whitelisted_caller};
use frame_benchmarking::{benchmarks, account, whitelisted_caller, impl_benchmark_test_suite};
use sp_runtime::traits::Bounded;
use crate::Module as Identity;
@@ -403,31 +403,8 @@ benchmarks! {
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_add_registrar::<Test>());
assert_ok!(test_benchmark_set_identity::<Test>());
assert_ok!(test_benchmark_set_subs_new::<Test>());
assert_ok!(test_benchmark_set_subs_old::<Test>());
assert_ok!(test_benchmark_clear_identity::<Test>());
assert_ok!(test_benchmark_request_judgement::<Test>());
assert_ok!(test_benchmark_cancel_request::<Test>());
assert_ok!(test_benchmark_set_fee::<Test>());
assert_ok!(test_benchmark_set_account_id::<Test>());
assert_ok!(test_benchmark_set_fields::<Test>());
assert_ok!(test_benchmark_provide_judgement::<Test>());
assert_ok!(test_benchmark_kill_identity::<Test>());
assert_ok!(test_benchmark_add_sub::<Test>());
assert_ok!(test_benchmark_rename_sub::<Test>());
assert_ok!(test_benchmark_remove_sub::<Test>());
assert_ok!(test_benchmark_quit_sub::<Test>());
});
}
}
impl_benchmark_test_suite!(
Identity,
crate::tests::new_test_ext(),
crate::tests::Test,
);
+6 -15
View File
@@ -22,7 +22,7 @@
use super::*;
use frame_system::RawOrigin;
use frame_benchmarking::benchmarks;
use frame_benchmarking::{benchmarks, impl_benchmark_test_suite};
use sp_core::OpaquePeerId;
use sp_core::offchain::OpaqueMultiaddr;
use sp_runtime::traits::{ValidateUnsigned, Zero};
@@ -91,18 +91,9 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::mock::{new_test_ext, Runtime};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_heartbeat::<Runtime>());
assert_ok!(test_benchmark_validate_unsigned::<Runtime>());
assert_ok!(test_benchmark_validate_unsigned_and_then_heartbeat::<Runtime>());
});
}
}
impl_benchmark_test_suite!(
ImOnline,
crate::mock::new_test_ext(),
crate::mock::Runtime,
);
+6 -17
View File
@@ -21,7 +21,7 @@
use super::*;
use frame_system::RawOrigin;
use frame_benchmarking::{benchmarks, account, whitelisted_caller};
use frame_benchmarking::{benchmarks, account, whitelisted_caller, impl_benchmark_test_suite};
use sp_runtime::traits::Bounded;
use crate::Module as Indices;
@@ -93,20 +93,9 @@ benchmarks! {
// TODO in another PR: lookup and unlookup trait weights (not critical)
}
#[cfg(test)]
mod tests {
use super::*;
use crate::mock::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_claim::<Test>());
assert_ok!(test_benchmark_transfer::<Test>());
assert_ok!(test_benchmark_free::<Test>());
assert_ok!(test_benchmark_force_transfer::<Test>());
assert_ok!(test_benchmark_freeze::<Test>());
});
}
}
impl_benchmark_test_suite!(
Indices,
crate::mock::new_test_ext(),
crate::mock::Test,
);
+6 -19
View File
@@ -23,7 +23,7 @@ use super::*;
use frame_system::RawOrigin;
use frame_support::traits::{OnInitialize, UnfilteredDispatchable};
use frame_benchmarking::{benchmarks, account, whitelisted_caller};
use frame_benchmarking::{benchmarks, account, whitelisted_caller, impl_benchmark_test_suite};
use sp_runtime::traits::{Bounded, Zero};
use crate::Module as Lottery;
@@ -170,21 +170,8 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::mock::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_buy_ticket::<Test>());
assert_ok!(test_benchmark_set_calls::<Test>());
assert_ok!(test_benchmark_start_lottery::<Test>());
assert_ok!(test_benchmark_stop_repeat::<Test>());
assert_ok!(test_benchmark_on_initialize_end::<Test>());
assert_ok!(test_benchmark_on_initialize_repeat::<Test>());
});
}
}
impl_benchmark_test_suite!(
Lottery,
crate::mock::new_test_ext(),
crate::mock::Test,
);
@@ -21,7 +21,7 @@
use crate::*;
use frame_support::traits::OnInitialize;
use frame_benchmarking::benchmarks;
use frame_benchmarking::{benchmarks, impl_benchmark_test_suite};
use sp_std::prelude::*;
benchmarks! {
@@ -38,17 +38,8 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::mock::*;
use crate::tests::new_test_ext;
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_on_initialize::<Test>());
})
}
}
impl_benchmark_test_suite!(
Module,
crate::tests::new_test_ext(),
crate::mock::Test,
);
+6 -23
View File
@@ -21,7 +21,7 @@
use super::*;
use frame_system::RawOrigin;
use frame_benchmarking::{benchmarks, account};
use frame_benchmarking::{benchmarks, account, impl_benchmark_test_suite};
use sp_runtime::traits::Bounded;
use core::convert::TryInto;
@@ -298,25 +298,8 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_as_multi_threshold_1::<Test>());
assert_ok!(test_benchmark_as_multi_create::<Test>());
assert_ok!(test_benchmark_as_multi_create_store::<Test>());
assert_ok!(test_benchmark_as_multi_approve::<Test>());
assert_ok!(test_benchmark_as_multi_approve_store::<Test>());
assert_ok!(test_benchmark_as_multi_complete::<Test>());
assert_ok!(test_benchmark_approve_as_multi_create::<Test>());
assert_ok!(test_benchmark_approve_as_multi_approve::<Test>());
assert_ok!(test_benchmark_approve_as_multi_complete::<Test>());
assert_ok!(test_benchmark_cancel_as_multi::<Test>());
});
}
}
impl_benchmark_test_suite!(
Multisig,
crate::tests::new_test_ext(),
crate::tests::Test,
);
@@ -25,7 +25,7 @@ use sp_std::prelude::*;
use sp_std::vec;
use frame_system::{RawOrigin, Module as System, Config as SystemConfig};
use frame_benchmarking::{benchmarks, account};
use frame_benchmarking::{benchmarks, account, impl_benchmark_test_suite};
use frame_support::traits::{Currency, OnInitialize, ValidatorSet, ValidatorSetWithIdentification};
use sp_runtime::{Perbill, traits::{Convert, StaticLookup, Saturating, UniqueSaturatedInto}};
@@ -420,19 +420,8 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::mock::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_report_offence_im_online::<Test>());
assert_ok!(test_benchmark_report_offence_grandpa::<Test>());
assert_ok!(test_benchmark_report_offence_babe::<Test>());
assert_ok!(test_benchmark_on_initialize::<Test>());
});
}
}
impl_benchmark_test_suite!(
Module,
crate::mock::new_test_ext(),
crate::mock::Test,
);
+6 -23
View File
@@ -21,7 +21,7 @@
use super::*;
use frame_system::{RawOrigin, EventRecord};
use frame_benchmarking::{benchmarks, account, whitelisted_caller};
use frame_benchmarking::{benchmarks, account, whitelisted_caller, impl_benchmark_test_suite};
use sp_runtime::traits::Bounded;
use crate::Module as Proxy;
@@ -251,25 +251,8 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_proxy::<Test>());
assert_ok!(test_benchmark_proxy_announced::<Test>());
assert_ok!(test_benchmark_remove_announcement::<Test>());
assert_ok!(test_benchmark_reject_announcement::<Test>());
assert_ok!(test_benchmark_announce::<Test>());
assert_ok!(test_benchmark_add_proxy::<Test>());
assert_ok!(test_benchmark_remove_proxy::<Test>());
assert_ok!(test_benchmark_remove_proxies::<Test>());
assert_ok!(test_benchmark_anonymous::<Test>());
assert_ok!(test_benchmark_kill_anonymous::<Test>());
});
}
}
impl_benchmark_test_suite!(
Proxy,
crate::tests::new_test_ext(),
crate::tests::Test,
);
+6 -18
View File
@@ -23,7 +23,7 @@ use super::*;
use sp_std::{vec, prelude::*};
use frame_system::RawOrigin;
use frame_support::{ensure, traits::OnInitialize};
use frame_benchmarking::benchmarks;
use frame_benchmarking::{benchmarks, impl_benchmark_test_suite};
use crate::Module as Scheduler;
use frame_system::Module as System;
@@ -141,20 +141,8 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_schedule::<Test>());
assert_ok!(test_benchmark_cancel::<Test>());
assert_ok!(test_benchmark_schedule_named::<Test>());
assert_ok!(test_benchmark_cancel_named::<Test>());
assert_ok!(test_benchmark_on_initialize::<Test>());
});
}
}
impl_benchmark_test_suite!(
Scheduler,
crate::tests::new_test_ext(),
crate::tests::Test,
);
@@ -25,7 +25,7 @@ mod mock;
use sp_std::prelude::*;
use sp_std::vec;
use frame_benchmarking::benchmarks;
use frame_benchmarking::{benchmarks, impl_benchmark_test_suite};
use frame_support::{
codec::Decode,
storage::StorageValue,
@@ -169,17 +169,9 @@ fn check_membership_proof_setup<T: Config>(
(key, Historical::<T>::prove(key).unwrap())
}
#[cfg(test)]
mod tests {
use super::*;
use crate::mock::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_set_keys::<Test>());
assert_ok!(test_benchmark_purge_keys::<Test>());
});
}
}
impl_benchmark_test_suite!(
Module,
crate::mock::new_test_ext(),
crate::mock::Test,
extra = false,
);
+13 -35
View File
@@ -24,7 +24,13 @@ use testing_utils::*;
use sp_npos_elections::CompactSolution;
use sp_runtime::traits::One;
use frame_system::RawOrigin;
pub use frame_benchmarking::{benchmarks, account, whitelisted_caller, whitelist_account};
pub use frame_benchmarking::{
benchmarks,
account,
whitelisted_caller,
whitelist_account,
impl_benchmark_test_suite,
};
const SEED: u32 = 0;
const MAX_SPANS: u32 = 100;
const MAX_VALIDATORS: u32 = 1000;
@@ -861,40 +867,6 @@ mod tests {
});
}
#[test]
fn test_benchmarks() {
ExtBuilder::default().has_stakers(true).build().execute_with(|| {
assert_ok!(test_benchmark_bond::<Test>());
assert_ok!(test_benchmark_bond_extra::<Test>());
assert_ok!(test_benchmark_unbond::<Test>());
assert_ok!(test_benchmark_withdraw_unbonded_update::<Test>());
assert_ok!(test_benchmark_withdraw_unbonded_kill::<Test>());
assert_ok!(test_benchmark_validate::<Test>());
assert_ok!(test_benchmark_kick::<Test>());
assert_ok!(test_benchmark_nominate::<Test>());
assert_ok!(test_benchmark_chill::<Test>());
assert_ok!(test_benchmark_set_payee::<Test>());
assert_ok!(test_benchmark_set_controller::<Test>());
assert_ok!(test_benchmark_set_validator_count::<Test>());
assert_ok!(test_benchmark_force_no_eras::<Test>());
assert_ok!(test_benchmark_force_new_era::<Test>());
assert_ok!(test_benchmark_force_new_era_always::<Test>());
assert_ok!(test_benchmark_set_invulnerables::<Test>());
assert_ok!(test_benchmark_force_unstake::<Test>());
assert_ok!(test_benchmark_cancel_deferred_slash::<Test>());
assert_ok!(test_benchmark_payout_stakers_dead_controller::<Test>());
assert_ok!(test_benchmark_payout_stakers_alive_staked::<Test>());
assert_ok!(test_benchmark_rebond::<Test>());
assert_ok!(test_benchmark_set_history_depth::<Test>());
assert_ok!(test_benchmark_reap_stash::<Test>());
assert_ok!(test_benchmark_new_era::<Test>());
assert_ok!(test_benchmark_do_slash::<Test>());
assert_ok!(test_benchmark_payout_all::<Test>());
// only run one of them to same time on the CI. ignore the other two.
assert_ok!(test_benchmark_submit_solution_initial::<Test>());
});
}
#[test]
#[ignore]
fn test_benchmarks_offchain() {
@@ -905,3 +877,9 @@ mod tests {
}
}
impl_benchmark_test_suite!(
Staking,
crate::mock::ExtBuilder::default().has_stakers(true).build(),
crate::mock::Test,
);
+6 -20
View File
@@ -24,7 +24,7 @@ use sp_std::vec;
use sp_std::prelude::*;
use sp_core::{ChangesTrieConfiguration, storage::well_known_keys};
use sp_runtime::traits::Hash;
use frame_benchmarking::{benchmarks, whitelisted_caller};
use frame_benchmarking::{benchmarks, whitelisted_caller, impl_benchmark_test_suite};
use frame_support::{
storage,
traits::Get,
@@ -138,22 +138,8 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::mock::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_remark::<Test>());
assert_ok!(test_benchmark_set_heap_pages::<Test>());
assert_ok!(test_benchmark_set_code_without_checks::<Test>());
assert_ok!(test_benchmark_set_changes_trie_config::<Test>());
assert_ok!(test_benchmark_set_storage::<Test>());
assert_ok!(test_benchmark_kill_storage::<Test>());
assert_ok!(test_benchmark_kill_prefix::<Test>());
});
}
}
impl_benchmark_test_suite!(
Module,
crate::mock::new_test_ext(),
crate::mock::Test,
);
+6 -15
View File
@@ -23,7 +23,7 @@ use super::*;
use sp_std::prelude::*;
use frame_system::RawOrigin;
use frame_support::{ensure, traits::OnFinalize};
use frame_benchmarking::{benchmarks, TrackedStorageKey};
use frame_benchmarking::{benchmarks, TrackedStorageKey, impl_benchmark_test_suite};
use crate::Module as Timestamp;
@@ -57,17 +57,8 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_set::<Test>());
assert_ok!(test_benchmark_on_finalize::<Test>());
});
}
}
impl_benchmark_test_suite!(
Timestamp,
crate::tests::new_test_ext(),
crate::tests::Test,
);
+6 -19
View File
@@ -22,7 +22,7 @@
use super::*;
use frame_system::RawOrigin;
use frame_benchmarking::{benchmarks, account, whitelisted_caller};
use frame_benchmarking::{benchmarks, account, whitelisted_caller, impl_benchmark_test_suite};
use sp_runtime::{traits::{Saturating}};
use crate::Module as TipsMod;
@@ -193,21 +193,8 @@ benchmarks! {
}: _(RawOrigin::Root, hash)
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_report_awesome::<Test>());
assert_ok!(test_benchmark_retract_tip::<Test>());
assert_ok!(test_benchmark_tip_new::<Test>());
assert_ok!(test_benchmark_tip::<Test>());
assert_ok!(test_benchmark_close_tip::<Test>());
assert_ok!(test_benchmark_slash_tip::<Test>());
});
}
}
impl_benchmark_test_suite!(
TipsMod,
crate::tests::new_test_ext(),
crate::tests::Test,
);
+7 -18
View File
@@ -22,7 +22,7 @@
use super::*;
use frame_system::RawOrigin;
use frame_benchmarking::{benchmarks_instance, account};
use frame_benchmarking::{benchmarks_instance, account, impl_benchmark_test_suite};
use frame_support::traits::OnInitialize;
use crate::Module as Treasury;
@@ -66,7 +66,7 @@ fn setup_pot_account<T: Config<I>, I: Instance>() {
}
benchmarks_instance! {
propose_spend {
let (caller, value, beneficiary_lookup) = setup_proposal::<T, _>(SEED);
// Whitelist caller account from further DB operations.
@@ -103,19 +103,8 @@ benchmarks_instance! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_propose_spend::<Test>());
assert_ok!(test_benchmark_reject_proposal::<Test>());
assert_ok!(test_benchmark_approve_proposal::<Test>());
assert_ok!(test_benchmark_on_initialize_proposals::<Test>());
});
}
}
impl_benchmark_test_suite!(
Treasury,
crate::tests::new_test_ext(),
crate::tests::Test,
);
+6 -16
View File
@@ -21,7 +21,7 @@
use super::*;
use frame_system::{RawOrigin, EventRecord};
use frame_benchmarking::{benchmarks, account, whitelisted_caller};
use frame_benchmarking::{benchmarks, account, whitelisted_caller, impl_benchmark_test_suite};
const SEED: u32 = 0;
@@ -69,18 +69,8 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{new_test_ext, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
new_test_ext().execute_with(|| {
assert_ok!(test_benchmark_batch::<Test>());
assert_ok!(test_benchmark_as_derivative::<Test>());
assert_ok!(test_benchmark_batch_all::<Test>());
});
}
}
impl_benchmark_test_suite!(
Module,
crate::tests::new_test_ext(),
crate::tests::Test,
);
+6 -19
View File
@@ -22,7 +22,7 @@
use super::*;
use frame_system::{RawOrigin, Module as System};
use frame_benchmarking::{benchmarks, account, whitelisted_caller};
use frame_benchmarking::{benchmarks, account, whitelisted_caller, impl_benchmark_test_suite};
use sp_runtime::traits::Bounded;
use crate::Module as Vesting;
@@ -224,21 +224,8 @@ benchmarks! {
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::{ExtBuilder, Test};
use frame_support::assert_ok;
#[test]
fn test_benchmarks() {
ExtBuilder::default().existential_deposit(256).build().execute_with(|| {
assert_ok!(test_benchmark_vest_locked::<Test>());
assert_ok!(test_benchmark_vest_unlocked::<Test>());
assert_ok!(test_benchmark_vest_other_locked::<Test>());
assert_ok!(test_benchmark_vest_other_unlocked::<Test>());
assert_ok!(test_benchmark_vested_transfer::<Test>());
assert_ok!(test_benchmark_force_vested_transfer::<Test>());
});
}
}
impl_benchmark_test_suite!(
Vesting,
crate::tests::ExtBuilder::default().existential_deposit(256).build(),
crate::tests::Test,
);