fix send_message_worst_case (#571)

This commit is contained in:
Svyatoslav Nikolsky
2020-12-14 10:10:05 +03:00
committed by Bastian Köcher
parent 0ff8c2437c
commit 2a0f7c7d17
2 changed files with 12 additions and 5 deletions
+4 -2
View File
@@ -830,7 +830,7 @@ impl_runtime_apis! {
} }
fn prepare_message( fn prepare_message(
params: MessageLaneMessageParams, params: MessageLaneMessageParams<Self::AccountId>,
) -> (millau_messages::ToMillauMessagePayload, Balance) { ) -> (millau_messages::ToMillauMessagePayload, Balance) {
use crate::millau_messages::{ToMillauMessagePayload, WithMillauMessageBridge}; use crate::millau_messages::{ToMillauMessagePayload, WithMillauMessageBridge};
use bridge_runtime_common::messages; use bridge_runtime_common::messages;
@@ -843,7 +843,9 @@ impl_runtime_apis! {
* sp_std::cmp::min(factor, WORST_MESSAGE_SIZE_FACTOR), * sp_std::cmp::min(factor, WORST_MESSAGE_SIZE_FACTOR),
}; };
let message_payload = vec![0; message_size as usize]; let message_payload = vec![0; message_size as usize];
let dispatch_origin = pallet_bridge_call_dispatch::CallOrigin::SourceAccount(Default::default()); let dispatch_origin = pallet_bridge_call_dispatch::CallOrigin::SourceAccount(
params.sender_account,
);
let message = ToMillauMessagePayload { let message = ToMillauMessagePayload {
spec_version: 0, spec_version: 0,
@@ -34,11 +34,13 @@ const SEED: u32 = 0;
pub struct Module<T: Trait<I>, I: crate::Instance>(crate::Module<T, I>); pub struct Module<T: Trait<I>, I: crate::Instance>(crate::Module<T, I>);
/// Benchmark-specific message parameters. /// Benchmark-specific message parameters.
pub struct MessageParams { pub struct MessageParams<ThisAccountId> {
/// Size factor of the message payload. Message payload grows with every factor /// Size factor of the message payload. Message payload grows with every factor
/// increment. Zero is the smallest possible message and the `WORST_MESSAGE_SIZE_FACTOR` is /// increment. Zero is the smallest possible message and the `WORST_MESSAGE_SIZE_FACTOR` is
/// largest possible message. /// largest possible message.
pub size_factor: u32, pub size_factor: u32,
/// Message sender account.
pub sender_account: ThisAccountId,
} }
/// Trait that must be implemented by runtime. /// Trait that must be implemented by runtime.
@@ -46,7 +48,7 @@ pub trait Trait<I: Instance>: crate::Trait<I> {
/// Create given account and give it enough balance for test purposes. /// Create given account and give it enough balance for test purposes.
fn endow_account(account: &Self::AccountId); fn endow_account(account: &Self::AccountId);
/// Prepare message to send over lane. /// Prepare message to send over lane.
fn prepare_message(params: MessageParams) -> (Self::OutboundPayload, Self::OutboundMessageFee); fn prepare_message(params: MessageParams<Self::AccountId>) -> (Self::OutboundPayload, Self::OutboundMessageFee);
} }
benchmarks_instance! { benchmarks_instance! {
@@ -70,7 +72,10 @@ benchmarks_instance! {
} }
confirm_message_delivery::<T, I>(T::MaxMessagesToPruneAtOnce::get()); confirm_message_delivery::<T, I>(T::MaxMessagesToPruneAtOnce::get());
let (payload, fee) = T::prepare_message(MessageParams { size_factor: WORST_MESSAGE_SIZE_FACTOR }); let (payload, fee) = T::prepare_message(MessageParams {
size_factor: WORST_MESSAGE_SIZE_FACTOR,
sender_account: sender.clone(),
});
}: send_message(RawOrigin::Signed(sender), lane_id, payload, fee) }: send_message(RawOrigin::Signed(sender), lane_id, payload, fee)
} }