git.delta.rocks / unique-network / refs/commits / e7f57de8c599

difftreelog

fix(scheduler-v2) fix benchmarks

Igor Kozyrev2022-10-28parent: #2a17a69.patch.diff
in: master

5 files changed

modifiedMakefilediffbeforeafterboth
--- 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:
modifiedpallets/scheduler-v2/src/benchmarking.rsdiffbeforeafterboth
--- 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<T> = <T as frame_system::Config>::Origin;
+type SystemOrigin<T> = <T as frame_system::Config>::RuntimeOrigin;
 
 /// Add `n` items to the schedule.
 ///
@@ -70,7 +70,7 @@
 		Scheduler::<T>::do_schedule_named(name, t, period, 0, origin.clone(), call)?;
 	}
 	ensure!(
-		Agenda::<T>::get(when).len() == n as usize,
+		Agenda::<T>::get(when).agenda.len() == n as usize,
 		"didn't fill schedule"
 	);
 	Ok(())
@@ -108,7 +108,7 @@
 }
 
 fn bounded<T: Config>(len: u32) -> Option<ScheduledCall<T>> {
-	let call = <<T as Config>::Call>::from(SystemCall::remark {
+	let call = <<T as Config>::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) .. (<T::Preimages as PreimageRecipient<T::Hash>>::MaxSize::get());
-		let now = BLOCK_NUMBER.into();
-		let task = make_task::<T>(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::<T>::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) .. (<T::Preimages as PreimageRecipient<T::Hash>>::MaxSize::get());
+	// 	let now = BLOCK_NUMBER.into();
+	// 	let task = make_task::<T>(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::<T>::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::<T>::get(when).len() == (s + 1) as usize,
+			Agenda::<T>::get(when).agenda.len() == (s + 1) as usize,
 			"didn't add to schedule"
 		);
 	}
@@ -278,7 +279,7 @@
 		let when = BLOCK_NUMBER.into();
 
 		fill_schedule::<T>(when, s)?;
-		assert_eq!(Agenda::<T>::get(when).len(), s as usize);
+		assert_eq!(Agenda::<T>::get(when).agenda.len(), s as usize);
 		let schedule_origin = T::ScheduleOrigin::successful_origin();
 	}: _<SystemOrigin<T>>(schedule_origin, when, 0)
 	verify {
@@ -288,7 +289,7 @@
 		);
 		// Removed schedule is NONE
 		ensure!(
-			Agenda::<T>::get(when)[0].is_none(),
+			Agenda::<T>::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::<T>::get(when).len() == (s + 1) as usize,
+			Agenda::<T>::get(when).agenda.len() == (s + 1) as usize,
 			"didn't add to schedule"
 		);
 	}
@@ -324,7 +325,7 @@
 		);
 		// Removed schedule is NONE
 		ensure!(
-			Agenda::<T>::get(when)[0].is_none(),
+			Agenda::<T>::get(when).agenda[0].is_none(),
 			"didn't remove from schedule"
 		);
 	}
@@ -340,7 +341,7 @@
 	}: _(origin, id, priority)
 	verify {
 		ensure!(
-			Agenda::<T>::get(when)[idx as usize].clone().unwrap().priority == priority,
+			Agenda::<T>::get(when).agenda[idx as usize].clone().unwrap().priority == priority,
 			"didn't change the priority"
 		);
 	}
modifiedpallets/scheduler-v2/src/lib.rsdiffbeforeafterboth
--- 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));
modifiedruntime/common/construct_runtime/mod.rsdiffbeforeafterboth
before · runtime/common/construct_runtime/mod.rs
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617mod util;1819#[macro_export]20macro_rules! construct_runtime {21    ($select_runtime:ident) => {22        $crate::construct_runtime_impl! {23            select_runtime($select_runtime);2425            pub enum Runtime where26                Block = Block,27                NodeBlock = opaque::Block,28                UncheckedExtrinsic = UncheckedExtrinsic29            {30                System: frame_system = 0,3132                ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event<T>, ValidateUnsigned} = 20,33                ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21,3435                Aura: pallet_aura::{Pallet, Config<T>} = 22,36                AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 23,3738                Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>} = 30,39                RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage} = 31,40                Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 32,41                TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event<T>} = 33,42                Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 34,43                Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>} = 35,44                Vesting: orml_vesting::{Pallet, Storage, Call, Event<T>, Config<T>} = 37,4546                XTokens: orml_xtokens = 38,47                Tokens: orml_tokens = 39,48                // Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>} = 38,4950                // XCM helpers.51                XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event<T>} = 50,52                PolkadotXcm: pallet_xcm::{Pallet, Call, Event<T>, Origin} = 51,53                CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event<T>, Origin} = 52,54                DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event<T>} = 53,5556                // Unique Pallets57                Inflation: pallet_inflation::{Pallet, Call, Storage} = 60,58                Unique: pallet_unique::{Pallet, Call, Storage, Event<T>} = 61,5960                // #[runtimes(opal)]61                // Scheduler: pallet_unique_scheduler::{Pallet, Call, Storage, Event<T>} = 62,6263                Configuration: pallet_configuration::{Pallet, Call, Storage} = 63,6465                Charging: pallet_charge_transaction::{Pallet, Call, Storage } = 64,66                // ContractHelpers: pallet_contract_helpers::{Pallet, Call, Storage} = 65,67                Common: pallet_common::{Pallet, Storage, Event<T>} = 66,68                Fungible: pallet_fungible::{Pallet, Storage} = 67,6970                #[runtimes(opal, quartz)]71                Refungible: pallet_refungible::{Pallet, Storage} = 68,7273                Nonfungible: pallet_nonfungible::{Pallet, Storage} = 69,74                Structure: pallet_structure::{Pallet, Call, Storage, Event<T>} = 70,7576                #[runtimes(opal)]77                RmrkCore: pallet_proxy_rmrk_core::{Pallet, Call, Storage, Event<T>} = 71,7879                #[runtimes(opal)]80                RmrkEquip: pallet_proxy_rmrk_equip::{Pallet, Call, Storage, Event<T>} = 72,8182                #[runtimes(opal)]83                AppPromotion: pallet_app_promotion::{Pallet, Call, Storage, Event<T>} = 73,8485                #[runtimes(opal)]86                ForeignAssets: pallet_foreign_assets::{Pallet, Call, Storage, Event<T>} = 80,8788                // Frontier89                EVM: pallet_evm::{Pallet, Config, Call, Storage, Event<T>} = 100,90                Ethereum: pallet_ethereum::{Pallet, Config, Call, Storage, Event, Origin} = 101,9192                EvmCoderSubstrate: pallet_evm_coder_substrate::{Pallet, Storage} = 150,93                EvmContractHelpers: pallet_evm_contract_helpers::{Pallet, Storage, Event<T>} = 151,94                EvmTransactionPayment: pallet_evm_transaction_payment::{Pallet} = 152,95                EvmMigration: pallet_evm_migration::{Pallet, Call, Storage} = 153,9697                Maintenance: pallet_maintenance::{Pallet, Call, Storage, Event<T>} = 154,9899                #[runtimes(opal)]100                Scheduler: pallet_unique_scheduler_v2::{Pallet, Call, Storage, Event<T>} = 154,101102                #[runtimes(opal)]103                TestUtils: pallet_test_utils = 255,104            }105        }106    }107}
after · runtime/common/construct_runtime/mod.rs
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617mod util;1819#[macro_export]20macro_rules! construct_runtime {21    ($select_runtime:ident) => {22        $crate::construct_runtime_impl! {23            select_runtime($select_runtime);2425            pub enum Runtime where26                Block = Block,27                NodeBlock = opaque::Block,28                UncheckedExtrinsic = UncheckedExtrinsic29            {30                System: frame_system = 0,3132                ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event<T>, ValidateUnsigned} = 20,33                ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21,3435                Aura: pallet_aura::{Pallet, Config<T>} = 22,36                AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 23,3738                Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>} = 30,39                RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage} = 31,40                Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 32,41                TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event<T>} = 33,42                Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 34,43                Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>} = 35,44                Vesting: orml_vesting::{Pallet, Storage, Call, Event<T>, Config<T>} = 37,4546                XTokens: orml_xtokens = 38,47                Tokens: orml_tokens = 39,48                // Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>} = 38,4950                // XCM helpers.51                XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event<T>} = 50,52                PolkadotXcm: pallet_xcm::{Pallet, Call, Event<T>, Origin} = 51,53                CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event<T>, Origin} = 52,54                DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event<T>} = 53,5556                // Unique Pallets57                Inflation: pallet_inflation::{Pallet, Call, Storage} = 60,58                Unique: pallet_unique::{Pallet, Call, Storage, Event<T>} = 61,5960                #[runtimes(opal)]61                Scheduler: pallet_unique_scheduler_v2::{Pallet, Call, Storage, Event<T>} = 62,6263                Configuration: pallet_configuration::{Pallet, Call, Storage} = 63,6465                Charging: pallet_charge_transaction::{Pallet, Call, Storage } = 64,66                // ContractHelpers: pallet_contract_helpers::{Pallet, Call, Storage} = 65,67                Common: pallet_common::{Pallet, Storage, Event<T>} = 66,68                Fungible: pallet_fungible::{Pallet, Storage} = 67,6970                #[runtimes(opal, quartz)]71                Refungible: pallet_refungible::{Pallet, Storage} = 68,7273                Nonfungible: pallet_nonfungible::{Pallet, Storage} = 69,74                Structure: pallet_structure::{Pallet, Call, Storage, Event<T>} = 70,7576                #[runtimes(opal)]77                RmrkCore: pallet_proxy_rmrk_core::{Pallet, Call, Storage, Event<T>} = 71,7879                #[runtimes(opal)]80                RmrkEquip: pallet_proxy_rmrk_equip::{Pallet, Call, Storage, Event<T>} = 72,8182                #[runtimes(opal)]83                AppPromotion: pallet_app_promotion::{Pallet, Call, Storage, Event<T>} = 73,8485                #[runtimes(opal)]86                ForeignAssets: pallet_foreign_assets::{Pallet, Call, Storage, Event<T>} = 80,8788                // Frontier89                EVM: pallet_evm::{Pallet, Config, Call, Storage, Event<T>} = 100,90                Ethereum: pallet_ethereum::{Pallet, Config, Call, Storage, Event, Origin} = 101,9192                EvmCoderSubstrate: pallet_evm_coder_substrate::{Pallet, Storage} = 150,93                EvmContractHelpers: pallet_evm_contract_helpers::{Pallet, Storage, Event<T>} = 151,94                EvmTransactionPayment: pallet_evm_transaction_payment::{Pallet} = 152,95                EvmMigration: pallet_evm_migration::{Pallet, Call, Storage} = 153,9697                Maintenance: pallet_maintenance::{Pallet, Call, Storage, Event<T>} = 154,9899                #[runtimes(opal)]100                TestUtils: pallet_test_utils = 255,101            }102        }103    }104}
modifiedruntime/common/runtime_apis.rsdiffbeforeafterboth
--- 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);