pallet_oracle/
benchmarking.rs1use super::*;
19use crate::Pallet as Oracle;
20
21use frame_benchmarking::v2::*;
22
23use frame_support::assert_ok;
24use frame_system::{Pallet as System, RawOrigin};
25
26#[instance_benchmarks]
27mod benchmarks {
28 use super::*;
29
30 #[benchmark]
31 fn feed_values(
32 x: Linear<0, { T::BenchmarkHelper::get_currency_id_value_pairs().len() as u32 }>,
33 ) {
34 let caller: T::AccountId = whitelisted_caller();
36 T::Members::add(&caller);
37
38 let values = T::BenchmarkHelper::get_currency_id_value_pairs()[..x as usize]
39 .to_vec()
40 .try_into()
41 .expect("Must succeed since at worst the length remained the same.");
42
43 #[extrinsic_call]
44 _(RawOrigin::Signed(caller.clone()), values);
45
46 assert!(HasDispatched::<T, I>::get().contains(&caller));
47 }
48
49 #[benchmark]
50 fn on_finalize() {
51 let caller: T::AccountId = whitelisted_caller();
53 T::Members::add(&caller);
54
55 System::<T>::set_block_number(1u32.into());
57 let values = T::BenchmarkHelper::get_currency_id_value_pairs();
58 assert_ok!(Oracle::<T, I>::feed_values(RawOrigin::Signed(caller).into(), values));
59
60 #[block]
61 {
62 Oracle::<T, I>::on_finalize(System::<T>::block_number());
63 }
64
65 assert!(!HasDispatched::<T, I>::exists());
66 }
67
68 impl_benchmark_test_suite! {
69 Oracle,
70 crate::mock::new_test_ext(),
71 crate::mock::Test,
72 }
73}