Skip to content

Commit

Permalink
Fix tanssi on main (#393)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
KitHat authored Dec 30, 2024
1 parent 9158633 commit 43508d9
Show file tree
Hide file tree
Showing 10 changed files with 88 additions and 22 deletions.
6 changes: 4 additions & 2 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 6 additions & 3 deletions evm-template/runtime/src/configs/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down
32 changes: 32 additions & 0 deletions evm-template/runtime/src/configs/xcm_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};
Expand Down
4 changes: 4 additions & 0 deletions evm-template/runtime/src/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 },
Expand All @@ -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(
Expand All @@ -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(
Expand All @@ -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(
Expand Down
3 changes: 3 additions & 0 deletions evm-template/runtime/tests/constants_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,7 @@ mod runtime_tests {
}

#[test]
#[cfg(not(feature = "tanssi"))]
fn session_constants() {
assert_eq!(configs::Period::get(), 6 * HOURS);

Expand All @@ -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());
Expand All @@ -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()
Expand Down
21 changes: 13 additions & 8 deletions evm-template/runtime/tests/storage.rs
Original file line number Diff line number Diff line change
@@ -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;

Expand All @@ -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");
}
}
7 changes: 6 additions & 1 deletion generic-template/runtime/src/configs/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -197,4 +202,4 @@ impl_openzeppelin_xcm!(OpenZeppelinRuntime);
impl_openzeppelin_assets!(OpenZeppelinRuntime);

#[cfg(feature = "tanssi")]
impl_openzeppelin_tanssi!();
impl_openzeppelin_tanssi!(OpenZeppelinRuntime);
4 changes: 4 additions & 0 deletions generic-template/runtime/src/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 },
Expand All @@ -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(
Expand All @@ -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(
Expand All @@ -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(
Expand Down
3 changes: 3 additions & 0 deletions generic-template/runtime/tests/constants_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ mod runtime_tests {
}

#[test]
#[cfg(not(feature = "tanssi"))]
fn session_constants() {
assert_eq!(configs::Period::get(), 6 * HOURS);

Expand All @@ -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());
Expand All @@ -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()
Expand Down
21 changes: 13 additions & 8 deletions generic-template/runtime/tests/storage.rs
Original file line number Diff line number Diff line change
@@ -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) {
Expand All @@ -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");
}
}

0 comments on commit 43508d9

Please sign in to comment.