From e7f57de8c5990c9c837267b0119b77b92fed6f12 Mon Sep 17 00:00:00 2001 From: Igor Kozyrev Date: Fri, 28 Oct 2022 13:59:25 +0000 Subject: [PATCH] fix(scheduler-v2): fix benchmarks --- --- a/Makefile +++ b/Makefile @@ -118,7 +118,7 @@ .PHONY: bench-scheduler bench-scheduler: - make _bench PALLET=unique-scheduler PALLET_DIR=scheduler + make _bench PALLET=unique-scheduler-v2 PALLET_DIR=scheduler-v2 .PHONY: bench-rmrk-core bench-rmrk-core: --- a/pallets/scheduler-v2/src/benchmarking.rs +++ b/pallets/scheduler-v2/src/benchmarking.rs @@ -51,7 +51,7 @@ const BLOCK_NUMBER: u32 = 2; -type SystemOrigin = ::Origin; +type SystemOrigin = ::RuntimeOrigin; /// Add `n` items to the schedule. /// @@ -70,7 +70,7 @@ Scheduler::::do_schedule_named(name, t, period, 0, origin.clone(), call)?; } ensure!( - Agenda::::get(when).len() == n as usize, + Agenda::::get(when).agenda.len() == n as usize, "didn't fill schedule" ); Ok(()) @@ -108,7 +108,7 @@ } fn bounded(len: u32) -> Option> { - let call = <::Call>::from(SystemCall::remark { + let call = <::RuntimeCall>::from(SystemCall::remark { remark: vec![0; len as usize], }); ScheduledCall::new(call).ok() @@ -197,18 +197,19 @@ //assert_eq!(result, Ok(())); } - // `service_task` when the task is a non-periodic, non-named, fetched call (with a known - // preimage length) and which is not dispatched (e.g. due to being overweight). - service_task_fetched { - let s in (EncodedCall::bound() as u32) .. (>::MaxSize::get()); - let now = BLOCK_NUMBER.into(); - let task = make_task::(false, false, false, Some(s), 0); - // prevent any tasks from actually being executed as we only want the surrounding weight. - let mut counter = WeightCounter { used: Weight::zero(), limit: Weight::zero() }; - }: { - let result = Scheduler::::service_task(&mut counter, now, now, 0, true, task); - } verify { - } + // TODO uncomment if we will use the Preimages + // // `service_task` when the task is a non-periodic, non-named, fetched call (with a known + // // preimage length) and which is not dispatched (e.g. due to being overweight). + // service_task_fetched { + // let s in (EncodedCall::bound() as u32) .. (>::MaxSize::get()); + // let now = BLOCK_NUMBER.into(); + // let task = make_task::(false, false, false, Some(s), 0); + // // prevent any tasks from actually being executed as we only want the surrounding weight. + // let mut counter = WeightCounter { used: Weight::zero(), limit: Weight::zero() }; + // }: { + // let result = Scheduler::::service_task(&mut counter, now, now, 0, true, task); + // } verify { + // } // `service_task` when the task is a non-periodic, named, non-fetched call which is not // dispatched (e.g. due to being overweight). @@ -268,7 +269,7 @@ }: _(RawOrigin::Root, when, periodic, priority, call) verify { ensure!( - Agenda::::get(when).len() == (s + 1) as usize, + Agenda::::get(when).agenda.len() == (s + 1) as usize, "didn't add to schedule" ); } @@ -278,7 +279,7 @@ let when = BLOCK_NUMBER.into(); fill_schedule::(when, s)?; - assert_eq!(Agenda::::get(when).len(), s as usize); + assert_eq!(Agenda::::get(when).agenda.len(), s as usize); let schedule_origin = T::ScheduleOrigin::successful_origin(); }: _>(schedule_origin, when, 0) verify { @@ -288,7 +289,7 @@ ); // Removed schedule is NONE ensure!( - Agenda::::get(when)[0].is_none(), + Agenda::::get(when).agenda[0].is_none(), "didn't remove from schedule" ); } @@ -306,7 +307,7 @@ }: _(RawOrigin::Root, id, when, periodic, priority, call) verify { ensure!( - Agenda::::get(when).len() == (s + 1) as usize, + Agenda::::get(when).agenda.len() == (s + 1) as usize, "didn't add to schedule" ); } @@ -324,7 +325,7 @@ ); // Removed schedule is NONE ensure!( - Agenda::::get(when)[0].is_none(), + Agenda::::get(when).agenda[0].is_none(), "didn't remove from schedule" ); } @@ -340,7 +341,7 @@ }: _(origin, id, priority) verify { ensure!( - Agenda::::get(when)[idx as usize].clone().unwrap().priority == priority, + Agenda::::get(when).agenda[idx as usize].clone().unwrap().priority == priority, "didn't change the priority" ); } --- a/pallets/scheduler-v2/src/lib.rs +++ b/pallets/scheduler-v2/src/lib.rs @@ -347,7 +347,11 @@ let base = Self::service_task_base(); let mut total = match maybe_lookup_len { None => base, - Some(l) => Self::service_task_fetched(l as u32), + Some(_l) => { + // TODO uncomment if we will use the Preimages + // Self::service_task_fetched(l as u32) + base + }, }; if named { total.saturating_accrue(Self::service_task_named().saturating_sub(base)); --- a/runtime/common/construct_runtime/mod.rs +++ b/runtime/common/construct_runtime/mod.rs @@ -57,8 +57,8 @@ Inflation: pallet_inflation::{Pallet, Call, Storage} = 60, Unique: pallet_unique::{Pallet, Call, Storage, Event} = 61, - // #[runtimes(opal)] - // Scheduler: pallet_unique_scheduler::{Pallet, Call, Storage, Event} = 62, + #[runtimes(opal)] + Scheduler: pallet_unique_scheduler_v2::{Pallet, Call, Storage, Event} = 62, Configuration: pallet_configuration::{Pallet, Call, Storage} = 63, @@ -95,9 +95,6 @@ EvmMigration: pallet_evm_migration::{Pallet, Call, Storage} = 153, Maintenance: pallet_maintenance::{Pallet, Call, Storage, Event} = 154, - - #[runtimes(opal)] - Scheduler: pallet_unique_scheduler_v2::{Pallet, Call, Storage, Event} = 154, #[runtimes(opal)] TestUtils: pallet_test_utils = 255, --- a/runtime/common/runtime_apis.rs +++ b/runtime/common/runtime_apis.rs @@ -683,8 +683,8 @@ #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))] list_benchmark!(list, extra, pallet_refungible, Refungible); - // #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))] - // list_benchmark!(list, extra, pallet_unique_scheduler, Scheduler); + #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))] + list_benchmark!(list, extra, pallet_unique_scheduler_v2, Scheduler); #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))] list_benchmark!(list, extra, pallet_proxy_rmrk_core, RmrkCore); @@ -743,8 +743,8 @@ #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))] add_benchmark!(params, batches, pallet_refungible, Refungible); - // #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))] - // add_benchmark!(params, batches, pallet_unique_scheduler, Scheduler); + #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))] + add_benchmark!(params, batches, pallet_unique_scheduler_v2, Scheduler); #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))] add_benchmark!(params, batches, pallet_proxy_rmrk_core, RmrkCore); -- gitstuff