Fix tanssi on main (#393)

* fix the tanssi build & tests

* fix fmt

* update features for coverage

* cleanup on coverage due runner out of space

* a bit more tests to pass the codecov check

* fix fmt
This commit is contained in:
Nikita Khateev
2024-12-30 14:13:55 +04:00
committed by GitHub
parent 9158633607
commit 43508d999f
10 changed files with 88 additions and 22 deletions
+4 -2
View File
@@ -84,12 +84,14 @@ jobs:
run: |
ls -l
cd generic-template/runtime
cargo llvm-cov --all-features --ignore-filename-regex ".*(weights|benchmark).*" --codecov --output-path lcov.info
cargo llvm-cov --features="runtime-benchmarks" --ignore-filename-regex ".*(weights|benchmark).*" --codecov --output-path lcov.info
cargo clean
- name: Generate EVM runtime coverage
run: |
cd evm-template/runtime
cargo llvm-cov --all-features --ignore-filename-regex ".*(weights|benchmark).*" --codecov --output-path lcov.info
cargo llvm-cov --features="runtime-benchmarks" --ignore-filename-regex ".*(weights|benchmark).*" --codecov --output-path lcov.info
cargo clean
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
+6 -3
View File
@@ -120,8 +120,6 @@ impl SystemConfig for OpenZeppelinRuntime {
type SlotDuration = ConstU64<SLOT_DURATION>;
type Version = Version;
}
#[cfg(feature = "tanssi")]
impl TanssiConfig for OpenZeppelinRuntime {}
#[cfg(not(feature = "tanssi"))]
impl ConsensusConfig for OpenZeppelinRuntime {
type CollatorSelectionUpdateOrigin = CollatorSelectionUpdateOrigin;
@@ -215,12 +213,17 @@ impl AssetsConfig for OpenZeppelinRuntime {
type ForeignAssetModifierOrigin = EnsureRoot<AccountId>;
type WeightToFee = WeightToFee;
}
#[cfg(feature = "tanssi")]
impl TanssiConfig for OpenZeppelinRuntime {
type AuthorInherent = pallet_author_inherent::weights::SubstrateWeight<Runtime>;
type AuthoritiesNothing = pallet_cc_authorities_noting::weights::SubstrateWeight<Runtime>;
}
impl_openzeppelin_assets!(OpenZeppelinRuntime);
impl_openzeppelin_system!(OpenZeppelinRuntime);
#[cfg(not(feature = "tanssi"))]
impl_openzeppelin_consensus!(OpenZeppelinRuntime);
#[cfg(feature = "tanssi")]
impl_openzeppelin_tanssi!();
impl_openzeppelin_tanssi!(OpenZeppelinRuntime);
impl_openzeppelin_governance!(OpenZeppelinRuntime);
impl_openzeppelin_xcm!(OpenZeppelinRuntime);
impl_openzeppelin_evm!(OpenZeppelinRuntime);
@@ -522,6 +522,38 @@ mod testing {
#[cfg(test)]
mod tests {
mod is_bridged_concrete_assets_from {
use frame_support::traits::ContainsPair;
use xcm::latest::{Asset, AssetId, Fungibility, Junctions, Location};
use crate::configs::{AssetHubLocation, IsBridgedConcreteAssetFrom};
#[test]
pub fn is_bridged_concrete_assets_from_contains() {
let asset = Asset {
id: AssetId(Location { parents: 2, interior: Junctions::Here }),
fun: Fungibility::Fungible(100),
};
assert!(IsBridgedConcreteAssetFrom::<AssetHubLocation>::contains(
&asset,
&AssetHubLocation::get()
))
}
#[test]
pub fn is_bridged_concrete_assets_from_not_contains() {
let asset = Asset {
id: AssetId(Location { parents: 1, interior: Junctions::Here }),
fun: Fungibility::Fungible(100),
};
assert!(!IsBridgedConcreteAssetFrom::<AssetHubLocation>::contains(
&asset,
&AssetHubLocation::get()
))
}
}
mod location_conversion {
use sp_core::H160;
use sp_runtime::traits::{Convert, TryConvert};
+4
View File
@@ -206,6 +206,7 @@ mod test {
use crate::{types::ProxyType, AssetManager, RuntimeCall};
#[test]
#[cfg(not(feature = "tanssi"))]
fn test_filter_any() {
let call = RuntimeCall::CollatorSelection(
pallet_collator_selection::Call::set_desired_candidates { max: 10 },
@@ -215,6 +216,7 @@ mod test {
}
#[test]
#[cfg(not(feature = "tanssi"))]
fn test_filter_nontransfer() {
let proxy_type = ProxyType::NonTransfer;
let valid_call = RuntimeCall::CollatorSelection(
@@ -227,6 +229,7 @@ mod test {
}
#[test]
#[cfg(not(feature = "tanssi"))]
fn test_filter_cancel_proxy() {
let proxy_type = ProxyType::CancelProxy;
let invalid_call = RuntimeCall::CollatorSelection(
@@ -241,6 +244,7 @@ mod test {
}
#[test]
#[cfg(not(feature = "tanssi"))]
fn test_filter_collator() {
let proxy_type = ProxyType::Collator;
let valid_call = RuntimeCall::CollatorSelection(
@@ -209,6 +209,7 @@ mod runtime_tests {
}
#[test]
#[cfg(not(feature = "tanssi"))]
fn session_constants() {
assert_eq!(configs::Period::get(), 6 * HOURS);
@@ -217,6 +218,7 @@ mod runtime_tests {
#[test]
#[allow(clippy::assertions_on_constants)]
#[cfg(not(feature = "tanssi"))]
fn aura_constants() {
#[cfg(not(feature = "async-backing"))]
assert!(!<Runtime as pallet_aura::Config>::AllowMultipleBlocksPerSlot::get());
@@ -227,6 +229,7 @@ mod runtime_tests {
}
#[test]
#[cfg(not(feature = "tanssi"))]
fn collator_selection_constants() {
let pallet_id_to_string = |id: PalletId| -> String {
core::str::from_utf8(&id.0).unwrap_or_default().to_string()
+13 -8
View File
@@ -1,8 +1,9 @@
// Storage indices integration checks
#[cfg(not(feature = "tanssi"))]
use evm_runtime_template::{Aura, AuraExt, Authorship, CollatorSelection, Session};
use evm_runtime_template::{
Aura, AuraExt, Authorship, Balances, CollatorSelection, CumulusXcm, MessageQueue, Multisig,
ParachainInfo, ParachainSystem, PolkadotXcm, Proxy, Runtime, Session, Sudo, System, Timestamp,
TransactionPayment, XcmpQueue,
Balances, CumulusXcm, MessageQueue, Multisig, ParachainInfo, ParachainSystem, PolkadotXcm,
Proxy, Runtime, Sudo, System, Timestamp, TransactionPayment, XcmpQueue,
};
use frame_support::traits::PalletInfo;
@@ -21,13 +22,17 @@ fn verify_pallet_prefixes() {
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::<MessageQueue>("MessageQueue");
#[cfg(not(feature = "tanssi"))]
{
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");
}
}
+6 -1
View File
@@ -189,6 +189,11 @@ impl AssetsConfig for OpenZeppelinRuntime {
type ForeignAssetModifierOrigin = EnsureRoot<AccountId>;
type WeightToFee = WeightToFee;
}
#[cfg(feature = "tanssi")]
impl TanssiConfig for OpenZeppelinRuntime {
type AuthorInherent = pallet_author_inherent::weights::SubstrateWeight<Runtime>;
type AuthoritiesNothing = pallet_cc_authorities_noting::weights::SubstrateWeight<Runtime>;
}
impl_openzeppelin_system!(OpenZeppelinRuntime);
#[cfg(not(feature = "tanssi"))]
impl_openzeppelin_consensus!(OpenZeppelinRuntime);
@@ -197,4 +202,4 @@ impl_openzeppelin_xcm!(OpenZeppelinRuntime);
impl_openzeppelin_assets!(OpenZeppelinRuntime);
#[cfg(feature = "tanssi")]
impl_openzeppelin_tanssi!();
impl_openzeppelin_tanssi!(OpenZeppelinRuntime);
+4
View File
@@ -207,6 +207,7 @@ mod test {
use crate::{types::ProxyType, AssetManager, RuntimeCall};
#[test]
#[cfg(not(feature = "tanssi"))]
fn test_filter_any() {
let call = RuntimeCall::CollatorSelection(
pallet_collator_selection::Call::set_desired_candidates { max: 10 },
@@ -216,6 +217,7 @@ mod test {
}
#[test]
#[cfg(not(feature = "tanssi"))]
fn test_filter_nontransfer() {
let proxy_type = ProxyType::NonTransfer;
let valid_call = RuntimeCall::CollatorSelection(
@@ -228,6 +230,7 @@ mod test {
}
#[test]
#[cfg(not(feature = "tanssi"))]
fn test_filter_cancel_proxy() {
let proxy_type = ProxyType::CancelProxy;
let invalid_call = RuntimeCall::CollatorSelection(
@@ -242,6 +245,7 @@ mod test {
}
#[test]
#[cfg(not(feature = "tanssi"))]
fn test_filter_collator() {
let proxy_type = ProxyType::Collator;
let valid_call = RuntimeCall::CollatorSelection(
@@ -204,6 +204,7 @@ mod runtime_tests {
}
#[test]
#[cfg(not(feature = "tanssi"))]
fn session_constants() {
assert_eq!(configs::Period::get(), 6 * HOURS);
@@ -212,6 +213,7 @@ mod runtime_tests {
#[test]
#[allow(clippy::assertions_on_constants)]
#[cfg(not(feature = "tanssi"))]
fn aura_constants() {
#[cfg(not(feature = "async-backing"))]
assert!(!<Runtime as pallet_aura::Config>::AllowMultipleBlocksPerSlot::get());
@@ -222,6 +224,7 @@ mod runtime_tests {
}
#[test]
#[cfg(not(feature = "tanssi"))]
fn collator_selection_constants() {
let pallet_id_to_string = |id: PalletId| -> String {
core::str::from_utf8(&id.0).unwrap_or_default().to_string()
+13 -8
View File
@@ -1,9 +1,10 @@
// Storage indices integration checks
use frame_support::traits::PalletInfo;
#[cfg(not(feature = "tanssi"))]
use generic_runtime_template::{Aura, AuraExt, Authorship, CollatorSelection, Session};
use generic_runtime_template::{
Aura, AuraExt, Authorship, Balances, CollatorSelection, CumulusXcm, MessageQueue, Multisig,
ParachainInfo, ParachainSystem, PolkadotXcm, Proxy, Runtime, Session, Sudo, System, Timestamp,
TransactionPayment, XcmpQueue,
Balances, CumulusXcm, MessageQueue, Multisig, ParachainInfo, ParachainSystem, PolkadotXcm,
Proxy, Runtime, Sudo, System, Timestamp, TransactionPayment, XcmpQueue,
};
fn assert_pallet_prefix<P: 'static>(name: &str) {
@@ -21,13 +22,17 @@ fn verify_pallet_prefixes() {
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::<MessageQueue>("MessageQueue");
#[cfg(not(feature = "tanssi"))]
{
assert_pallet_prefix::<Authorship>("Authorship");
assert_pallet_prefix::<Aura>("Aura");
assert_pallet_prefix::<AuraExt>("AuraExt");
assert_pallet_prefix::<CollatorSelection>("CollatorSelection");
assert_pallet_prefix::<Session>("Session");
}
}