This commit is contained in:
4meta5
2023-11-27 19:15:48 -05:00
parent 57f9353fd0
commit a3cd8e00d2
4 changed files with 42 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
// ExtBuilder impl for all runtime integration tests
use frame_support::weights::Weight;
use parachain_template_runtime::{BuildStorage, Runtime, System};
pub fn run_with_system_weight<F>(w: Weight, mut assertions: F)
where
F: FnMut() -> (),
{
let mut t: sp_io::TestExternalities =
frame_system::GenesisConfig::<Runtime>::default().build_storage().unwrap().into();
t.execute_with(|| {
System::set_block_consumed_resources(w, 0);
assertions()
});
}
+22
View File
@@ -0,0 +1,22 @@
// Integration transaction fee tests i.e. adjusts to block saturation
mod common;
use common::*;
use frame_support::pallet_prelude::*;
use parachain_template_runtime::{Runtime, RuntimeBlockWeights};
use polkadot_runtime_common::MinimumMultiplier;
use sp_runtime::{traits::Convert, Perquintill};
#[test]
fn multiplier_can_grow_from_zero() {
let minimum_multiplier = MinimumMultiplier::get();
let target = Perquintill::from_percent(25)
* RuntimeBlockWeights::get().get(DispatchClass::Normal).max_total.unwrap();
// if the min is too small, then this will not change, and we are doomed forever.
// the weight is 1/100th bigger than target.
run_with_system_weight(target * 101 / 100, || {
let next = <Runtime as pallet_transaction_payment::Config>::FeeMultiplierUpdate::convert(
minimum_multiplier,
);
assert!(next > minimum_multiplier, "{:?} !>= {:?}", next, minimum_multiplier);
})
}