From 4a28dd65008e3eddc1e7a0c0018c3463f084adad Mon Sep 17 00:00:00 2001 From: Hugo Trentesaux <hugo@trentesaux.fr> Date: Wed, 20 Dec 2023 12:41:27 +0100 Subject: [PATCH] update benchmarks --- pallets/distance/src/benchmarking.rs | 55 +++++++++++++++++++--------- pallets/distance/src/lib.rs | 2 +- 2 files changed, 38 insertions(+), 19 deletions(-) diff --git a/pallets/distance/src/benchmarking.rs b/pallets/distance/src/benchmarking.rs index 33ba9419b..cb7283931 100644 --- a/pallets/distance/src/benchmarking.rs +++ b/pallets/distance/src/benchmarking.rs @@ -50,16 +50,36 @@ benchmarks! { T: pallet_balances::Config, T::Balance: From<u64>, T::BlockNumber: From<u32>, } + + // request distance evaluation request_distance_evaluation { - let idty = T::IdtyIndex::one(); - let caller: T::AccountId = pallet_identity::Identities::<T>::get(idty).unwrap().owner_key; - let caller_origin: <T as frame_system::Config>::RuntimeOrigin = RawOrigin::Signed(caller.clone()).into(); - let _ = <Balances<T> as Currency<_>>::make_free_balance_be(&caller, T::Balance::max_value()); + let idty = T::IdtyIndex::one(); + let caller: T::AccountId = pallet_identity::Identities::<T>::get(idty).unwrap().owner_key; + let caller_origin: <T as frame_system::Config>::RuntimeOrigin = RawOrigin::Signed(caller.clone()).into(); + let _ = <Balances<T> as Currency<_>>::make_free_balance_be(&caller, T::Balance::max_value()); }: _<T::RuntimeOrigin>(caller_origin.clone()) verify { - assert!(IdentityDistanceStatus::<T>::get(idty) == Some((caller.clone(), DistanceStatus::Pending)), "Request not added"); + assert!(PendingEvaluationRequest::<T>::get(idty) == Some(caller.clone()), "Request not added"); assert_has_event::<T>(Event::<T>::EvaluationRequested { idty_index: idty, who: caller }.into()); } + + // request distance evaluation for + request_distance_evaluation_for { + let idty = T::IdtyIndex::one(); + let caller: T::AccountId = pallet_identity::Identities::<T>::get(idty).unwrap().owner_key; + let caller_origin: <T as frame_system::Config>::RuntimeOrigin = RawOrigin::Signed(caller.clone()).into(); + let _ = <Balances<T> as Currency<_>>::make_free_balance_be(&caller, T::Balance::max_value()); + let target = 2u32; + // set target status since targeted distance evaluation only allowed for unvalidated + pallet_identity::Identities::<T>::mutate(target, + |idty_val| idty_val.as_mut().unwrap().status = pallet_identity::IdtyStatus::Unvalidated); + }: _<T::RuntimeOrigin>(caller_origin.clone(), target) + verify { + assert!(PendingEvaluationRequest::<T>::get(&target) == Some(caller.clone()), "Request not added"); + assert_has_event::<T>(Event::<T>::EvaluationRequested { idty_index: target, who: caller }.into()); + } + + // update evaluation update_evaluation { let digest_data = sp_consensus_babe::digests::PreDigest::SecondaryPlain( sp_consensus_babe::digests::SecondaryPlainPreDigest { authority_index: 0u32, slot: Default::default() }); @@ -71,27 +91,26 @@ benchmarks! { let caller_origin: <T as frame_system::Config>::RuntimeOrigin = RawOrigin::Signed(caller.clone()).into(); let i in 1 .. MAX_EVALUATIONS_PER_SESSION => populate_pool::<T>(i)?; }: _<T::RuntimeOrigin>(RawOrigin::None.into(), ComputationResult{distances: vec![Perbill::one(); i as usize]}) - verify { - assert_has_event::<T>(Event::<T>::EvaluationUpdated { evaluator: caller }.into()); - } + + // force update evaluation force_update_evaluation { let idty = T::IdtyIndex::one(); let caller: T::AccountId = pallet_identity::Identities::<T>::get(idty).unwrap().owner_key; let caller_origin: <T as frame_system::Config>::RuntimeOrigin = RawOrigin::Signed(caller.clone()).into(); let i in 1 .. MAX_EVALUATIONS_PER_SESSION => populate_pool::<T>(i)?; }: _<T::RuntimeOrigin>(RawOrigin::Root.into(), caller.clone(), ComputationResult{distances: vec![Perbill::one(); i as usize]}) + + // force valid distance status + force_valid_distance_status { + let idty = T::IdtyIndex::one(); + let caller: T::AccountId = pallet_identity::Identities::<T>::get(idty).unwrap().owner_key; + }: _<T::RuntimeOrigin>(RawOrigin::Root.into(), idty) verify { - assert_has_event::<T>(Event::<T>::EvaluationUpdated { evaluator: caller }.into()); - } - force_set_distance_status { - let idty = T::IdtyIndex::one(); - let caller: T::AccountId = pallet_identity::Identities::<T>::get(idty).unwrap().owner_key; - let status = Some((caller.clone(), DistanceStatus::Valid)); - }: _<T::RuntimeOrigin>(RawOrigin::Root.into(), idty, status.clone()) - verify { - assert!(IdentityDistanceStatus::<T>::get(idty) == Some((caller, DistanceStatus::Valid)), "Status not set"); - assert_has_event::<T>(Event::<T>::EvaluationStatusForced { idty_index: idty, status }.into()); + assert!(ValidEvaluationResult::<T>::get(idty) == Some(()), "Status not set"); + assert_has_event::<T>(Event::<T>::EvaluatedValid { idty_index: idty }.into()); } + + // on finalize on_finalize { DidUpdate::<T>::set(true); }: { Pallet::<T>::on_finalize(Default::default()); } diff --git a/pallets/distance/src/lib.rs b/pallets/distance/src/lib.rs index 4413e26f3..bbc6f5a52 100644 --- a/pallets/distance/src/lib.rs +++ b/pallets/distance/src/lib.rs @@ -460,7 +460,7 @@ pub mod pallet { idty_index: <T as pallet_identity::Config>::IdtyIndex, ) -> Result<(), DispatchError> { Pallet::<T>::mutate_current_pool( - pallet_session::CurrentIndex::<T>::get(), + pallet_session::CurrentIndex::<T>::get(), // TODO look |current_pool| { ensure!( current_pool.evaluations.len() < (MAX_EVALUATIONS_PER_SESSION as usize), -- GitLab