Skip to content

Commit

Permalink
minimal runtime integration tests
Browse files Browse the repository at this point in the history
  • Loading branch information
4meta5 committed Nov 28, 2023
1 parent a3cd8e0 commit dec935a
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 23 deletions.
2 changes: 1 addition & 1 deletion runtime/tests/common/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ where
System::set_block_consumed_resources(w, 0);
assertions()
});
}
}
22 changes: 0 additions & 22 deletions runtime/tests/fee.rs

This file was deleted.

46 changes: 46 additions & 0 deletions runtime/tests/multiplier.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
// Integration transaction weight-fee tests
mod common;
use common::*;
use frame_support::pallet_prelude::*;
use pallet_transaction_payment::Multiplier;
use parachain_template_runtime::{Runtime, RuntimeBlockWeights};
use polkadot_runtime_common::MinimumMultiplier;
use sp_runtime::{traits::Convert, Perquintill};

fn min_multiplier() -> Multiplier {
MinimumMultiplier::get()
}

fn target() -> Weight {
Perquintill::from_percent(25)
* RuntimeBlockWeights::get().get(DispatchClass::Normal).max_total.unwrap()
}

fn runtime_multiplier_update(fm: Multiplier) -> Multiplier {
<Runtime as pallet_transaction_payment::Config>::FeeMultiplierUpdate::convert(fm)
}

#[test]
fn multiplier_can_grow_from_zero() {
// if the min is too small, then this will not change, and we are doomed forever.
// the block ref time is 1/100th bigger than target.
run_with_system_weight(target().set_ref_time(target().ref_time() * 101 / 100), || {
let next = runtime_multiplier_update(min_multiplier());
assert!(next > min_multiplier(), "{:?} !> {:?}", next, min_multiplier());
});

// the block proof size is 1/100th bigger than target.
run_with_system_weight(target().set_proof_size((target().proof_size() / 100) * 101), || {
let next = runtime_multiplier_update(min_multiplier());
assert!(next > min_multiplier(), "{:?} !> {:?}", next, min_multiplier());
})
}

#[test]
fn multiplier_cannot_go_below_limit() {
// will not go any further below even if block is empty.
run_with_system_weight(Weight::zero(), || {
let next = runtime_multiplier_update(min_multiplier());
assert_eq!(next, min_multiplier());
})
}
34 changes: 34 additions & 0 deletions runtime/tests/storage.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// Storage indices integration checks
use frame_support::traits::PalletInfo;
use parachain_template_runtime::{
Aura, AuraExt, Authorship, Balances, CollatorSelection, CumulusXcm, DmpQueue, Multisig,
ParachainInfo, ParachainSystem, PolkadotXcm, Proxy, Runtime, Session, Sudo, System,
TemplatePallet, Timestamp, TransactionPayment, XcmpQueue,
};

fn assert_pallet_prefix<P: 'static>(name: &str) {
assert_eq!(<Runtime as frame_system::Config>::PalletInfo::name::<P>(), Some(name));
}

#[test]
fn verify_pallet_prefixes() {
assert_pallet_prefix::<System>("System");
assert_pallet_prefix::<ParachainSystem>("ParachainSystem");
assert_pallet_prefix::<Timestamp>("Timestamp");
assert_pallet_prefix::<ParachainInfo>("ParachainInfo");
assert_pallet_prefix::<Proxy>("Proxy");
assert_pallet_prefix::<Balances>("Balances");
assert_pallet_prefix::<TransactionPayment>("TransactionPayment");
assert_pallet_prefix::<Sudo>("Sudo");
assert_pallet_prefix::<Multisig>("Multisig");
assert_pallet_prefix::<Authorship>("Authorship");
assert_pallet_prefix::<CollatorSelection>("CollatorSelection");
assert_pallet_prefix::<Session>("Session");
assert_pallet_prefix::<Aura>("Aura");
assert_pallet_prefix::<AuraExt>("AuraExt");
assert_pallet_prefix::<XcmpQueue>("XcmpQueue");
assert_pallet_prefix::<PolkadotXcm>("PolkadotXcm");
assert_pallet_prefix::<CumulusXcm>("CumulusXcm");
assert_pallet_prefix::<DmpQueue>("DmpQueue");
assert_pallet_prefix::<TemplatePallet>("TemplatePallet");
}

0 comments on commit dec935a

Please sign in to comment.