From f81e306cf559db80bbeeba072bb6da0fd1c3f8ea Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 1 Jun 2022 01:14:23 +0200 Subject: [PATCH] Short circuit Treasury::Spend benchmark for NeverEnsureOrigin (#11562) Signed-off-by: Oliver Tale-Yazdi Co-authored-by: parity-processbot <> --- substrate/frame/treasury/src/benchmarking.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/substrate/frame/treasury/src/benchmarking.rs b/substrate/frame/treasury/src/benchmarking.rs index 4f17189d79..ddb9523833 100644 --- a/substrate/frame/treasury/src/benchmarking.rs +++ b/substrate/frame/treasury/src/benchmarking.rs @@ -66,14 +66,22 @@ fn assert_last_event, I: 'static>(generic_event: >:: } benchmarks_instance_pallet! { + // This benchmark is short-circuited if `SpendOrigin` cannot provide + // a successful origin, in which case `spend` is un-callable and can use weight=0. spend { let (_, value, beneficiary_lookup) = setup_proposal::(SEED); - let origin = T::SpendOrigin::successful_origin(); + let origin = T::SpendOrigin::try_successful_origin(); let beneficiary = T::Lookup::lookup(beneficiary_lookup.clone()).unwrap(); let call = Call::::spend { amount: value, beneficiary: beneficiary_lookup }; - }: { call.dispatch_bypass_filter(origin)? } + }: { + if let Ok(origin) = origin.clone() { + call.dispatch_bypass_filter(origin)?; + } + } verify { - assert_last_event::(Event::SpendApproved { proposal_index: 0, amount: value, beneficiary }.into()) + if origin.is_ok() { + assert_last_event::(Event::SpendApproved { proposal_index: 0, amount: value, beneficiary }.into()) + } } propose_spend {