Renames API (#1186)

Co-authored-by: Javier Viola <javier@parity.io>
This commit is contained in:
gupnik
2023-09-01 12:16:07 +05:30
committed by GitHub
parent a33d7922f8
commit 16fe5be02f
12 changed files with 58 additions and 58 deletions
+1 -1
View File
@@ -1027,7 +1027,7 @@ macro_rules! decl_test_networks {
use $crate::{Bounded, ProcessMessage, WeightMeter}; use $crate::{Bounded, ProcessMessage, WeightMeter};
use sp_core::Encode; use sp_core::Encode;
while let Some((from_para_id, msg)) = $crate::UPWARD_MESSAGES.with(|b| b.borrow_mut().get_mut(Self::name()).unwrap().pop_front()) { while let Some((from_para_id, msg)) = $crate::UPWARD_MESSAGES.with(|b| b.borrow_mut().get_mut(Self::name()).unwrap().pop_front()) {
let mut weight_meter = WeightMeter::max_limit(); let mut weight_meter = WeightMeter::new();
<$relay_chain>::ext_wrapper(|| { <$relay_chain>::ext_wrapper(|| {
let _ = <$relay_chain as RelayChain>::MessageProcessor::process_message( let _ = <$relay_chain as RelayChain>::MessageProcessor::process_message(
&msg[..], &msg[..],
@@ -110,7 +110,7 @@ mod tests {
// Errors if we stay below a weight limit of 1000. // Errors if we stay below a weight limit of 1000.
for i in 0..10 { for i in 0..10 {
let meter = &mut WeightMeter::from_limit((i * 10).into()); let meter = &mut WeightMeter::with_limit((i * 10).into());
let mut id = [0; 32]; let mut id = [0; 32];
assert_err!( assert_err!(
Processor::process_message(msg, ORIGIN, meter, &mut id), Processor::process_message(msg, ORIGIN, meter, &mut id),
@@ -120,7 +120,7 @@ mod tests {
} }
// Works with a limit of 1000. // Works with a limit of 1000.
let meter = &mut WeightMeter::from_limit(1000.into()); let meter = &mut WeightMeter::with_limit(1000.into());
let mut id = [0; 32]; let mut id = [0; 32];
assert_ok!(Processor::process_message(msg, ORIGIN, meter, &mut id)); assert_ok!(Processor::process_message(msg, ORIGIN, meter, &mut id));
assert_eq!(meter.consumed(), 1000.into()); assert_eq!(meter.consumed(), 1000.into());
@@ -150,6 +150,6 @@ mod tests {
} }
fn process_raw(raw: &[u8]) -> Result<bool, ProcessMessageError> { fn process_raw(raw: &[u8]) -> Result<bool, ProcessMessageError> {
Processor::process_message(raw, ORIGIN, &mut WeightMeter::max_limit(), &mut [0; 32]) Processor::process_message(raw, ORIGIN, &mut WeightMeter::new(), &mut [0; 32])
} }
} }
+1 -1
View File
@@ -324,7 +324,7 @@ macro_rules! decl_test_network {
let mut _id = [0; 32]; let mut _id = [0; 32];
let r = <$relay_chain>::process_message( let r = <$relay_chain>::process_message(
encoded.as_slice(), para_id, encoded.as_slice(), para_id,
&mut $crate::WeightMeter::max_limit(), &mut $crate::WeightMeter::new(),
&mut _id, &mut _id,
); );
match r { match r {
+1 -1
View File
@@ -41,7 +41,7 @@ impl<T: Config> Pallet<T> {
_ => return Weight::zero(), _ => return Weight::zero(),
}; };
let mut meter = WeightMeter::max_limit(); let mut meter = WeightMeter::new();
if Self::process_core_count(&mut status) { if Self::process_core_count(&mut status) {
meter.consume(T::WeightInfo::process_core_count(status.core_count.into())); meter.consume(T::WeightInfo::process_core_count(status.core_count.into()));
+2 -2
View File
@@ -188,7 +188,7 @@ pub mod pallet {
} }
fn on_idle(_: BlockNumberFor<T>, remaining_weight: Weight) -> Weight { fn on_idle(_: BlockNumberFor<T>, remaining_weight: Weight) -> Weight {
let mut meter = WeightMeter::from_limit(remaining_weight); let mut meter = WeightMeter::with_limit(remaining_weight);
if meter.try_consume(T::WeightInfo::empty_on_idle()).is_err() { if meter.try_consume(T::WeightInfo::empty_on_idle()).is_err() {
return T::WeightInfo::empty_on_idle() return T::WeightInfo::empty_on_idle()
} }
@@ -197,7 +197,7 @@ pub mod pallet {
Storage::<T>::get().saturating_mul_int(meter.remaining().proof_size()); Storage::<T>::get().saturating_mul_int(meter.remaining().proof_size());
let computation_weight_limit = let computation_weight_limit =
Compute::<T>::get().saturating_mul_int(meter.remaining().ref_time()); Compute::<T>::get().saturating_mul_int(meter.remaining().ref_time());
let mut meter = WeightMeter::from_limit(Weight::from_parts( let mut meter = WeightMeter::with_limit(Weight::from_parts(
computation_weight_limit, computation_weight_limit,
proof_size_limit, proof_size_limit,
)); ));
+2 -2
View File
@@ -252,7 +252,7 @@ fn on_idle_weight_over_unity_is_close_enough_works() {
fn waste_at_most_ref_time_weight_close_enough() { fn waste_at_most_ref_time_weight_close_enough() {
new_test_ext().execute_with(|| { new_test_ext().execute_with(|| {
let mut meter = let mut meter =
WeightMeter::from_limit(Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND, u64::MAX)); WeightMeter::with_limit(Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND, u64::MAX));
// Over-spending fails defensively. // Over-spending fails defensively.
Glutton::waste_at_most_ref_time(&mut meter); Glutton::waste_at_most_ref_time(&mut meter);
@@ -269,7 +269,7 @@ fn waste_at_most_ref_time_weight_close_enough() {
fn waste_at_most_proof_size_weight_close_enough() { fn waste_at_most_proof_size_weight_close_enough() {
new_test_ext().execute_with(|| { new_test_ext().execute_with(|| {
let mut meter = let mut meter =
WeightMeter::from_limit(Weight::from_parts(u64::MAX, WEIGHT_PROOF_SIZE_PER_MB * 5)); WeightMeter::with_limit(Weight::from_parts(u64::MAX, WEIGHT_PROOF_SIZE_PER_MB * 5));
// Over-spending fails defensively. // Over-spending fails defensively.
Glutton::waste_at_most_proof_size(&mut meter); Glutton::waste_at_most_proof_size(&mut meter);
@@ -78,7 +78,7 @@ mod benchmarks {
fn service_queue_base() { fn service_queue_base() {
#[block] #[block]
{ {
MessageQueue::<T>::service_queue(0.into(), &mut WeightMeter::max_limit(), Weight::MAX); MessageQueue::<T>::service_queue(0.into(), &mut WeightMeter::new(), Weight::MAX);
} }
} }
@@ -89,7 +89,7 @@ mod benchmarks {
let page = PageOf::<T>::default(); let page = PageOf::<T>::default();
Pages::<T>::insert(&origin, 0, &page); Pages::<T>::insert(&origin, 0, &page);
let mut book_state = single_page_book::<T>(); let mut book_state = single_page_book::<T>();
let mut meter = WeightMeter::max_limit(); let mut meter = WeightMeter::new();
let limit = Weight::MAX; let limit = Weight::MAX;
#[block] #[block]
@@ -108,7 +108,7 @@ mod benchmarks {
page.remaining = 1.into(); page.remaining = 1.into();
Pages::<T>::insert(&origin, 0, &page); Pages::<T>::insert(&origin, 0, &page);
let mut book_state = single_page_book::<T>(); let mut book_state = single_page_book::<T>();
let mut meter = WeightMeter::max_limit(); let mut meter = WeightMeter::new();
let limit = Weight::MAX; let limit = Weight::MAX;
#[block] #[block]
@@ -124,7 +124,7 @@ mod benchmarks {
let mut page = page::<T>(&msg.clone()); let mut page = page::<T>(&msg.clone());
let mut book = book_for::<T>(&page); let mut book = book_for::<T>(&page);
assert!(page.peek_first().is_some(), "There is one message"); assert!(page.peek_first().is_some(), "There is one message");
let mut weight = WeightMeter::max_limit(); let mut weight = WeightMeter::new();
#[block] #[block]
{ {
@@ -158,7 +158,7 @@ mod benchmarks {
#[benchmark] #[benchmark]
fn bump_service_head() { fn bump_service_head() {
setup_bump_service_head::<T>(0.into(), 10.into()); setup_bump_service_head::<T>(0.into(), 10.into());
let mut weight = WeightMeter::max_limit(); let mut weight = WeightMeter::new();
#[block] #[block]
{ {
+4 -4
View File
@@ -832,7 +832,7 @@ impl<T: Config> Pallet<T> {
); );
ensure!(!is_processed, Error::<T>::AlreadyProcessed); ensure!(!is_processed, Error::<T>::AlreadyProcessed);
use MessageExecutionStatus::*; use MessageExecutionStatus::*;
let mut weight_counter = WeightMeter::from_limit(weight_limit); let mut weight_counter = WeightMeter::with_limit(weight_limit);
match Self::process_message_payload( match Self::process_message_payload(
origin.clone(), origin.clone(),
page_index, page_index,
@@ -1150,7 +1150,7 @@ impl<T: Config> Pallet<T> {
//loop around this origin //loop around this origin
let starting_origin = ServiceHead::<T>::get().unwrap(); let starting_origin = ServiceHead::<T>::get().unwrap();
while let Some(head) = Self::bump_service_head(&mut WeightMeter::max_limit()) { while let Some(head) = Self::bump_service_head(&mut WeightMeter::new()) {
ensure!( ensure!(
BookStateFor::<T>::contains_key(&head), BookStateFor::<T>::contains_key(&head),
"Service head must point to an existing book" "Service head must point to an existing book"
@@ -1362,7 +1362,7 @@ impl<T: Config> ServiceQueues for Pallet<T> {
fn service_queues(weight_limit: Weight) -> Weight { fn service_queues(weight_limit: Weight) -> Weight {
// The maximum weight that processing a single message may take. // The maximum weight that processing a single message may take.
let overweight_limit = weight_limit; let overweight_limit = weight_limit;
let mut weight = WeightMeter::from_limit(weight_limit); let mut weight = WeightMeter::with_limit(weight_limit);
let mut next = match Self::bump_service_head(&mut weight) { let mut next = match Self::bump_service_head(&mut weight) {
Some(h) => h, Some(h) => h,
@@ -1402,7 +1402,7 @@ impl<T: Config> ServiceQueues for Pallet<T> {
weight_limit: Weight, weight_limit: Weight,
(message_origin, page, index): Self::OverweightMessageAddress, (message_origin, page, index): Self::OverweightMessageAddress,
) -> Result<Weight, ExecuteOverweightError> { ) -> Result<Weight, ExecuteOverweightError> {
let mut weight = WeightMeter::from_limit(weight_limit); let mut weight = WeightMeter::with_limit(weight_limit);
if weight if weight
.try_consume( .try_consume(
T::WeightInfo::execute_overweight_page_removed() T::WeightInfo::execute_overweight_page_removed()
+16 -16
View File
@@ -381,7 +381,7 @@ fn service_queue_bails() {
// Not enough weight for `service_queue_base`. // Not enough weight for `service_queue_base`.
build_and_execute::<Test>(|| { build_and_execute::<Test>(|| {
set_weight("service_queue_base", 2.into_weight()); set_weight("service_queue_base", 2.into_weight());
let mut meter = WeightMeter::from_limit(1.into_weight()); let mut meter = WeightMeter::with_limit(1.into_weight());
assert_storage_noop!(MessageQueue::service_queue(0u32.into(), &mut meter, Weight::MAX)); assert_storage_noop!(MessageQueue::service_queue(0u32.into(), &mut meter, Weight::MAX));
assert!(meter.consumed().is_zero()); assert!(meter.consumed().is_zero());
@@ -389,7 +389,7 @@ fn service_queue_bails() {
// Not enough weight for `ready_ring_unknit`. // Not enough weight for `ready_ring_unknit`.
build_and_execute::<Test>(|| { build_and_execute::<Test>(|| {
set_weight("ready_ring_unknit", 2.into_weight()); set_weight("ready_ring_unknit", 2.into_weight());
let mut meter = WeightMeter::from_limit(1.into_weight()); let mut meter = WeightMeter::with_limit(1.into_weight());
assert_storage_noop!(MessageQueue::service_queue(0u32.into(), &mut meter, Weight::MAX)); assert_storage_noop!(MessageQueue::service_queue(0u32.into(), &mut meter, Weight::MAX));
assert!(meter.consumed().is_zero()); assert!(meter.consumed().is_zero());
@@ -399,7 +399,7 @@ fn service_queue_bails() {
set_weight("service_queue_base", 2.into_weight()); set_weight("service_queue_base", 2.into_weight());
set_weight("ready_ring_unknit", 2.into_weight()); set_weight("ready_ring_unknit", 2.into_weight());
let mut meter = WeightMeter::from_limit(3.into_weight()); let mut meter = WeightMeter::with_limit(3.into_weight());
assert_storage_noop!(MessageQueue::service_queue(0.into(), &mut meter, Weight::MAX)); assert_storage_noop!(MessageQueue::service_queue(0.into(), &mut meter, Weight::MAX));
assert!(meter.consumed().is_zero()); assert!(meter.consumed().is_zero());
}); });
@@ -426,7 +426,7 @@ fn service_page_works() {
msgs -= process; msgs -= process;
// Enough weight to process `process` messages. // Enough weight to process `process` messages.
let mut meter = WeightMeter::from_limit(((2 + (3 + 1) * process) as u64).into_weight()); let mut meter = WeightMeter::with_limit(((2 + (3 + 1) * process) as u64).into_weight());
System::reset_events(); System::reset_events();
let (processed, status) = let (processed, status) =
crate::Pallet::<Test>::service_page(&Here, &mut book, &mut meter, Weight::MAX); crate::Pallet::<Test>::service_page(&Here, &mut book, &mut meter, Weight::MAX);
@@ -449,7 +449,7 @@ fn service_page_bails() {
// Not enough weight for `service_page_base_completion`. // Not enough weight for `service_page_base_completion`.
build_and_execute::<Test>(|| { build_and_execute::<Test>(|| {
set_weight("service_page_base_completion", 2.into_weight()); set_weight("service_page_base_completion", 2.into_weight());
let mut meter = WeightMeter::from_limit(1.into_weight()); let mut meter = WeightMeter::with_limit(1.into_weight());
let (page, _) = full_page::<Test>(); let (page, _) = full_page::<Test>();
let mut book = book_for::<Test>(&page); let mut book = book_for::<Test>(&page);
@@ -466,7 +466,7 @@ fn service_page_bails() {
// Not enough weight for `service_page_base_no_completion`. // Not enough weight for `service_page_base_no_completion`.
build_and_execute::<Test>(|| { build_and_execute::<Test>(|| {
set_weight("service_page_base_no_completion", 2.into_weight()); set_weight("service_page_base_no_completion", 2.into_weight());
let mut meter = WeightMeter::from_limit(1.into_weight()); let mut meter = WeightMeter::with_limit(1.into_weight());
let (page, _) = full_page::<Test>(); let (page, _) = full_page::<Test>();
let mut book = book_for::<Test>(&page); let mut book = book_for::<Test>(&page);
@@ -487,7 +487,7 @@ fn service_page_item_bails() {
build_and_execute::<Test>(|| { build_and_execute::<Test>(|| {
let _guard = StorageNoopGuard::default(); let _guard = StorageNoopGuard::default();
let (mut page, _) = full_page::<Test>(); let (mut page, _) = full_page::<Test>();
let mut weight = WeightMeter::from_limit(10.into_weight()); let mut weight = WeightMeter::with_limit(10.into_weight());
let overweight_limit = 10.into_weight(); let overweight_limit = 10.into_weight();
set_weight("service_page_item", 11.into_weight()); set_weight("service_page_item", 11.into_weight());
@@ -518,7 +518,7 @@ fn service_page_suspension_works() {
Pages::<Test>::insert(Here, 0, page); Pages::<Test>::insert(Here, 0, page);
// First we process 5 messages from this page. // First we process 5 messages from this page.
let mut meter = WeightMeter::from_limit(5.into_weight()); let mut meter = WeightMeter::with_limit(5.into_weight());
let (_, status) = let (_, status) =
crate::Pallet::<Test>::service_page(&Here, &mut book, &mut meter, Weight::MAX); crate::Pallet::<Test>::service_page(&Here, &mut book, &mut meter, Weight::MAX);
@@ -534,7 +534,7 @@ fn service_page_suspension_works() {
let (_, status) = crate::Pallet::<Test>::service_page( let (_, status) = crate::Pallet::<Test>::service_page(
&Here, &Here,
&mut book, &mut book,
&mut WeightMeter::max_limit(), &mut WeightMeter::new(),
Weight::MAX, Weight::MAX,
); );
assert_eq!(status, NoProgress); assert_eq!(status, NoProgress);
@@ -546,7 +546,7 @@ fn service_page_suspension_works() {
let (_, status) = crate::Pallet::<Test>::service_page( let (_, status) = crate::Pallet::<Test>::service_page(
&Here, &Here,
&mut book, &mut book,
&mut WeightMeter::max_limit(), &mut WeightMeter::new(),
Weight::MAX, Weight::MAX,
); );
assert_eq!(status, NoMore); assert_eq!(status, NoMore);
@@ -564,7 +564,7 @@ fn bump_service_head_works() {
// Bump 99 times. // Bump 99 times.
for i in 0..99 { for i in 0..99 {
let current = MessageQueue::bump_service_head(&mut WeightMeter::max_limit()).unwrap(); let current = MessageQueue::bump_service_head(&mut WeightMeter::new()).unwrap();
assert_eq!(current, [Here, There, Everywhere(0)][i % 3]); assert_eq!(current, [Here, There, Everywhere(0)][i % 3]);
} }
@@ -581,7 +581,7 @@ fn bump_service_head_bails() {
setup_bump_service_head::<Test>(0.into(), 1.into()); setup_bump_service_head::<Test>(0.into(), 1.into());
let _guard = StorageNoopGuard::default(); let _guard = StorageNoopGuard::default();
let mut meter = WeightMeter::from_limit(1.into_weight()); let mut meter = WeightMeter::with_limit(1.into_weight());
assert!(MessageQueue::bump_service_head(&mut meter).is_none()); assert!(MessageQueue::bump_service_head(&mut meter).is_none());
assert_eq!(meter.consumed(), 0.into_weight()); assert_eq!(meter.consumed(), 0.into_weight());
}); });
@@ -591,7 +591,7 @@ fn bump_service_head_bails() {
fn bump_service_head_trivial_works() { fn bump_service_head_trivial_works() {
build_and_execute::<Test>(|| { build_and_execute::<Test>(|| {
set_weight("bump_service_head", 2.into_weight()); set_weight("bump_service_head", 2.into_weight());
let mut meter = WeightMeter::max_limit(); let mut meter = WeightMeter::new();
assert_eq!(MessageQueue::bump_service_head(&mut meter), None, "Cannot bump"); assert_eq!(MessageQueue::bump_service_head(&mut meter), None, "Cannot bump");
assert_eq!(meter.consumed(), 2.into_weight()); assert_eq!(meter.consumed(), 2.into_weight());
@@ -616,7 +616,7 @@ fn bump_service_head_no_head_noops() {
ServiceHead::<Test>::kill(); ServiceHead::<Test>::kill();
// Nothing happens. // Nothing happens.
assert_storage_noop!(MessageQueue::bump_service_head(&mut WeightMeter::max_limit())); assert_storage_noop!(MessageQueue::bump_service_head(&mut WeightMeter::new()));
}); });
} }
@@ -624,7 +624,7 @@ fn bump_service_head_no_head_noops() {
fn service_page_item_consumes_correct_weight() { fn service_page_item_consumes_correct_weight() {
build_and_execute::<Test>(|| { build_and_execute::<Test>(|| {
let mut page = page::<Test>(b"weight=3"); let mut page = page::<Test>(b"weight=3");
let mut weight = WeightMeter::from_limit(10.into_weight()); let mut weight = WeightMeter::with_limit(10.into_weight());
let overweight_limit = 0.into_weight(); let overweight_limit = 0.into_weight();
set_weight("service_page_item", 2.into_weight()); set_weight("service_page_item", 2.into_weight());
@@ -648,7 +648,7 @@ fn service_page_item_consumes_correct_weight() {
fn service_page_item_skips_perm_overweight_message() { fn service_page_item_skips_perm_overweight_message() {
build_and_execute::<Test>(|| { build_and_execute::<Test>(|| {
let mut page = page::<Test>(b"TooMuch"); let mut page = page::<Test>(b"TooMuch");
let mut weight = WeightMeter::from_limit(2.into_weight()); let mut weight = WeightMeter::with_limit(2.into_weight());
let overweight_limit = 0.into_weight(); let overweight_limit = 0.into_weight();
set_weight("service_page_item", 2.into_weight()); set_weight("service_page_item", 2.into_weight());
@@ -131,7 +131,7 @@ benchmarks! {
let now = BlockNumberFor::<T>::from(BLOCK_NUMBER); let now = BlockNumberFor::<T>::from(BLOCK_NUMBER);
IncompleteSince::<T>::put(now - One::one()); IncompleteSince::<T>::put(now - One::one());
}: { }: {
Scheduler::<T>::service_agendas(&mut WeightMeter::max_limit(), now, 0); Scheduler::<T>::service_agendas(&mut WeightMeter::new(), now, 0);
} verify { } verify {
assert_eq!(IncompleteSince::<T>::get(), Some(now - One::one())); assert_eq!(IncompleteSince::<T>::get(), Some(now - One::one()));
} }
@@ -143,7 +143,7 @@ benchmarks! {
fill_schedule::<T>(now, s)?; fill_schedule::<T>(now, s)?;
let mut executed = 0; let mut executed = 0;
}: { }: {
Scheduler::<T>::service_agenda(&mut WeightMeter::max_limit(), &mut executed, now, now, 0); Scheduler::<T>::service_agenda(&mut WeightMeter::new(), &mut executed, now, now, 0);
} verify { } verify {
assert_eq!(executed, 0); assert_eq!(executed, 0);
} }
@@ -154,7 +154,7 @@ benchmarks! {
let now = BLOCK_NUMBER.into(); let now = BLOCK_NUMBER.into();
let task = make_task::<T>(false, false, false, None, 0); let task = make_task::<T>(false, false, false, None, 0);
// prevent any tasks from actually being executed as we only want the surrounding weight. // prevent any tasks from actually being executed as we only want the surrounding weight.
let mut counter = WeightMeter::from_limit(Weight::zero()); let mut counter = WeightMeter::with_limit(Weight::zero());
}: { }: {
let result = Scheduler::<T>::service_task(&mut counter, now, now, 0, true, task); let result = Scheduler::<T>::service_task(&mut counter, now, now, 0, true, task);
} verify { } verify {
@@ -172,7 +172,7 @@ benchmarks! {
let now = BLOCK_NUMBER.into(); let now = BLOCK_NUMBER.into();
let task = make_task::<T>(false, false, false, Some(s), 0); 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. // prevent any tasks from actually being executed as we only want the surrounding weight.
let mut counter = WeightMeter::from_limit(Weight::zero()); let mut counter = WeightMeter::with_limit(Weight::zero());
}: { }: {
let result = Scheduler::<T>::service_task(&mut counter, now, now, 0, true, task); let result = Scheduler::<T>::service_task(&mut counter, now, now, 0, true, task);
} verify { } verify {
@@ -184,7 +184,7 @@ benchmarks! {
let now = BLOCK_NUMBER.into(); let now = BLOCK_NUMBER.into();
let task = make_task::<T>(false, true, false, None, 0); let task = make_task::<T>(false, true, false, None, 0);
// prevent any tasks from actually being executed as we only want the surrounding weight. // prevent any tasks from actually being executed as we only want the surrounding weight.
let mut counter = WeightMeter::from_limit(Weight::zero()); let mut counter = WeightMeter::with_limit(Weight::zero());
}: { }: {
let result = Scheduler::<T>::service_task(&mut counter, now, now, 0, true, task); let result = Scheduler::<T>::service_task(&mut counter, now, now, 0, true, task);
} verify { } verify {
@@ -196,7 +196,7 @@ benchmarks! {
let now = BLOCK_NUMBER.into(); let now = BLOCK_NUMBER.into();
let task = make_task::<T>(true, false, false, None, 0); let task = make_task::<T>(true, false, false, None, 0);
// prevent any tasks from actually being executed as we only want the surrounding weight. // prevent any tasks from actually being executed as we only want the surrounding weight.
let mut counter = WeightMeter::from_limit(Weight::zero()); let mut counter = WeightMeter::with_limit(Weight::zero());
}: { }: {
let result = Scheduler::<T>::service_task(&mut counter, now, now, 0, true, task); let result = Scheduler::<T>::service_task(&mut counter, now, now, 0, true, task);
} verify { } verify {
@@ -204,7 +204,7 @@ benchmarks! {
// `execute_dispatch` when the origin is `Signed`, not counting the dispatable's weight. // `execute_dispatch` when the origin is `Signed`, not counting the dispatable's weight.
execute_dispatch_signed { execute_dispatch_signed {
let mut counter = WeightMeter::max_limit(); let mut counter = WeightMeter::new();
let origin = make_origin::<T>(true); let origin = make_origin::<T>(true);
let call = T::Preimages::realize(&make_call::<T>(None)).unwrap().0; let call = T::Preimages::realize(&make_call::<T>(None)).unwrap().0;
}: { }: {
@@ -215,7 +215,7 @@ benchmarks! {
// `execute_dispatch` when the origin is not `Signed`, not counting the dispatable's weight. // `execute_dispatch` when the origin is not `Signed`, not counting the dispatable's weight.
execute_dispatch_unsigned { execute_dispatch_unsigned {
let mut counter = WeightMeter::max_limit(); let mut counter = WeightMeter::new();
let origin = make_origin::<T>(false); let origin = make_origin::<T>(false);
let call = T::Preimages::realize(&make_call::<T>(None)).unwrap().0; let call = T::Preimages::realize(&make_call::<T>(None)).unwrap().0;
}: { }: {
+1 -1
View File
@@ -318,7 +318,7 @@ pub mod pallet {
impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> { impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
/// Execute the scheduled calls /// Execute the scheduled calls
fn on_initialize(now: BlockNumberFor<T>) -> Weight { fn on_initialize(now: BlockNumberFor<T>) -> Weight {
let mut weight_counter = WeightMeter::from_limit(T::MaximumWeight::get()); let mut weight_counter = WeightMeter::with_limit(T::MaximumWeight::get());
Self::service_agendas(&mut weight_counter, now, u32::max_value()); Self::service_agendas(&mut weight_counter, now, u32::max_value());
weight_counter.consumed() weight_counter.consumed()
} }
@@ -31,7 +31,7 @@ use sp_arithmetic::Perbill;
/// use sp_weights::{Weight, WeightMeter}; /// use sp_weights::{Weight, WeightMeter};
/// ///
/// // The weight is limited to (10, 0). /// // The weight is limited to (10, 0).
/// let mut meter = WeightMeter::from_limit(Weight::from_parts(10, 0)); /// let mut meter = WeightMeter::with_limit(Weight::from_parts(10, 0));
/// // There is enough weight remaining for an operation with (6, 0) weight. /// // There is enough weight remaining for an operation with (6, 0) weight.
/// assert!(meter.try_consume(Weight::from_parts(6, 0)).is_ok()); /// assert!(meter.try_consume(Weight::from_parts(6, 0)).is_ok());
/// assert_eq!(meter.remaining(), Weight::from_parts(4, 0)); /// assert_eq!(meter.remaining(), Weight::from_parts(4, 0));
@@ -51,13 +51,13 @@ pub struct WeightMeter {
impl WeightMeter { impl WeightMeter {
/// Creates [`Self`] from a limit for the maximal consumable weight. /// Creates [`Self`] from a limit for the maximal consumable weight.
pub fn from_limit(limit: Weight) -> Self { pub fn with_limit(limit: Weight) -> Self {
Self { consumed: Weight::zero(), limit } Self { consumed: Weight::zero(), limit }
} }
/// Creates [`Self`] with the maximal possible limit for the consumable weight. /// Creates [`Self`] with the maximal possible limit for the consumable weight.
pub fn max_limit() -> Self { pub fn new() -> Self {
Self::from_limit(Weight::MAX) Self::with_limit(Weight::MAX)
} }
/// The already consumed weight. /// The already consumed weight.
@@ -84,7 +84,7 @@ impl WeightMeter {
/// use sp_weights::{Weight, WeightMeter}; /// use sp_weights::{Weight, WeightMeter};
/// use sp_arithmetic::Perbill; /// use sp_arithmetic::Perbill;
/// ///
/// let mut meter = WeightMeter::from_limit(Weight::from_parts(10, 20)); /// let mut meter = WeightMeter::with_limit(Weight::from_parts(10, 20));
/// // Nothing consumed so far: /// // Nothing consumed so far:
/// assert_eq!(meter.consumed_ratio(), Perbill::from_percent(0)); /// assert_eq!(meter.consumed_ratio(), Perbill::from_percent(0));
/// meter.consume(Weight::from_parts(5, 5)); /// meter.consume(Weight::from_parts(5, 5));
@@ -158,7 +158,7 @@ mod tests {
#[test] #[test]
fn weight_meter_remaining_works() { fn weight_meter_remaining_works() {
let mut meter = WeightMeter::from_limit(Weight::from_parts(10, 20)); let mut meter = WeightMeter::with_limit(Weight::from_parts(10, 20));
assert!(meter.check_accrue(Weight::from_parts(5, 0))); assert!(meter.check_accrue(Weight::from_parts(5, 0)));
assert_eq!(meter.consumed, Weight::from_parts(5, 0)); assert_eq!(meter.consumed, Weight::from_parts(5, 0));
@@ -175,7 +175,7 @@ mod tests {
#[test] #[test]
fn weight_meter_can_accrue_works() { fn weight_meter_can_accrue_works() {
let meter = WeightMeter::from_limit(Weight::from_parts(1, 1)); let meter = WeightMeter::with_limit(Weight::from_parts(1, 1));
assert!(meter.can_accrue(Weight::from_parts(0, 0))); assert!(meter.can_accrue(Weight::from_parts(0, 0)));
assert!(meter.can_accrue(Weight::from_parts(1, 1))); assert!(meter.can_accrue(Weight::from_parts(1, 1)));
@@ -186,7 +186,7 @@ mod tests {
#[test] #[test]
fn weight_meter_check_accrue_works() { fn weight_meter_check_accrue_works() {
let mut meter = WeightMeter::from_limit(Weight::from_parts(2, 2)); let mut meter = WeightMeter::with_limit(Weight::from_parts(2, 2));
assert!(meter.check_accrue(Weight::from_parts(0, 0))); assert!(meter.check_accrue(Weight::from_parts(0, 0)));
assert!(meter.check_accrue(Weight::from_parts(1, 1))); assert!(meter.check_accrue(Weight::from_parts(1, 1)));
@@ -199,7 +199,7 @@ mod tests {
#[test] #[test]
fn weight_meter_check_and_can_accrue_works() { fn weight_meter_check_and_can_accrue_works() {
let mut meter = WeightMeter::max_limit(); let mut meter = WeightMeter::new();
assert!(meter.can_accrue(Weight::from_parts(u64::MAX, 0))); assert!(meter.can_accrue(Weight::from_parts(u64::MAX, 0)));
assert!(meter.check_accrue(Weight::from_parts(u64::MAX, 0))); assert!(meter.check_accrue(Weight::from_parts(u64::MAX, 0)));
@@ -219,7 +219,7 @@ mod tests {
#[test] #[test]
fn consumed_ratio_works() { fn consumed_ratio_works() {
let mut meter = WeightMeter::from_limit(Weight::from_parts(10, 20)); let mut meter = WeightMeter::with_limit(Weight::from_parts(10, 20));
assert!(meter.check_accrue(Weight::from_parts(5, 0))); assert!(meter.check_accrue(Weight::from_parts(5, 0)));
assert_eq!(meter.consumed_ratio(), Perbill::from_percent(50)); assert_eq!(meter.consumed_ratio(), Perbill::from_percent(50));
@@ -239,7 +239,7 @@ mod tests {
#[test] #[test]
fn try_consume_works() { fn try_consume_works() {
let mut meter = WeightMeter::from_limit(Weight::from_parts(10, 0)); let mut meter = WeightMeter::with_limit(Weight::from_parts(10, 0));
assert!(meter.try_consume(Weight::from_parts(11, 0)).is_err()); assert!(meter.try_consume(Weight::from_parts(11, 0)).is_err());
assert!(meter.consumed().is_zero(), "No modification"); assert!(meter.consumed().is_zero(), "No modification");
@@ -253,7 +253,7 @@ mod tests {
#[test] #[test]
fn can_consume_works() { fn can_consume_works() {
let mut meter = WeightMeter::from_limit(Weight::from_parts(10, 0)); let mut meter = WeightMeter::with_limit(Weight::from_parts(10, 0));
assert!(!meter.can_consume(Weight::from_parts(11, 0))); assert!(!meter.can_consume(Weight::from_parts(11, 0)));
assert!(meter.consumed().is_zero(), "No modification"); assert!(meter.consumed().is_zero(), "No modification");
@@ -267,7 +267,7 @@ mod tests {
#[test] #[test]
#[cfg(debug_assertions)] #[cfg(debug_assertions)]
fn consume_works() { fn consume_works() {
let mut meter = WeightMeter::from_limit(Weight::from_parts(5, 10)); let mut meter = WeightMeter::with_limit(Weight::from_parts(5, 10));
meter.consume(Weight::from_parts(4, 0)); meter.consume(Weight::from_parts(4, 0));
assert_eq!(meter.remaining(), Weight::from_parts(1, 10)); assert_eq!(meter.remaining(), Weight::from_parts(1, 10));
@@ -281,7 +281,7 @@ mod tests {
#[cfg(debug_assertions)] #[cfg(debug_assertions)]
#[should_panic(expected = "Weight counter overflow")] #[should_panic(expected = "Weight counter overflow")]
fn consume_defensive_fail() { fn consume_defensive_fail() {
let mut meter = WeightMeter::from_limit(Weight::from_parts(10, 0)); let mut meter = WeightMeter::with_limit(Weight::from_parts(10, 0));
let _ = meter.consume(Weight::from_parts(11, 0)); let _ = meter.consume(Weight::from_parts(11, 0));
} }
} }