mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 01:41:03 +00:00
9ecb2d3391
So far the `bridge-hub-test-utils` contained a tests set for testing BridgeHub runtime that is bridging with the remote **parachain**. But we have https://github.com/paritytech/polkadot-sdk/pull/2540 coming, which would add Rococo <> Bulletin chain bridge (where Bulletin = standalone chain that is using GRANDPA finality). Then it'll be expanded to Polkadot BH as well. So this PR adds the same set of tests to the `bridge-hub-test-utils`, but for the case when remote chain is the chain with GRANDPA finality. There's a lot of changes in this PR - I'll describe some: - I've added `BasicParachainRuntime` trait to decrease number of lines we need to add to `where` clause. Could revert, but imo it is useful; - `cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_data` is a submodule for generating test data for the test sets. `from_parachain.rs` is used in tests for the case when remote chain is a parachain, `from_grandpa_chain.rs` - for the bridges with remote GRANDPA chains. `mod.rs` has some code, shared by both types of tests; - `cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_data` is a submodule with all test cases. The `mod.rs` has tests, suitable for all cases. There's also `wth_parachain.rs` and `with_grandpa_chain.rs` with the same meaning as above; - I've merged the "core" code of two previous tests - `relayed_incoming_message_works` and `complex_relay_extrinsic_works` into one single `relayed_incoming_message_works` test. So now we are always constructing extrinsics and are dispatching them using executive module (meaning all signed extensions are also tested). New test set is used here: https://github.com/paritytech/polkadot-sdk/pull/2540. Once this PR is merged, I'll merge that other PR with master to remove duplicate changes. I'm also planning to cleanup generic constraints + remove some unnecessary assumptions about used chains in a follow-up PRs. But for now I think this PR has enough changes, so don't want to complicate it even more. --- Breaking changes for the code that have used those tests before: - the `construct_and_apply_extrinsic` callback now accepts the `RuntimeCall` instead of the `pallet_utility::Call`; - the `construct_and_apply_extrinsic` now may be called multiple times for the single test, so make sure the `frame_system::CheckNonce` is correctly constructed; - all previous tests have been moved from `bridge_hub_test_utils::test_cases` to `bridge_hub_test_utils::test_cases::from_parachain` module; - there are several changes in test arguments - please refer to https://github.com/paritytech/polkadot-sdk/compare/sv-tests-for-bridge-with-remote-grandpa-chain?expand=1#diff-79a28d4d3e1749050341c2424f00c4c139825b1a20937767f83e58b95166735c for details.
100 lines
4.9 KiB
TOML
100 lines
4.9 KiB
TOML
[package]
|
|
name = "bridge-hub-test-utils"
|
|
version = "0.1.0"
|
|
authors.workspace = true
|
|
edition.workspace = true
|
|
description = "Utils for BridgeHub testing"
|
|
license = "Apache-2.0"
|
|
|
|
[dependencies]
|
|
codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] }
|
|
impl-trait-for-tuples = "0.2"
|
|
log = { version = "0.4.20", default-features = false }
|
|
|
|
# Substrate
|
|
frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true }
|
|
frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false }
|
|
frame-support = { path = "../../../../../substrate/frame/support", default-features = false }
|
|
frame-system = { path = "../../../../../substrate/frame/system", default-features = false }
|
|
sp-core = { path = "../../../../../substrate/primitives/core", default-features = false }
|
|
sp-io = { path = "../../../../../substrate/primitives/io", default-features = false }
|
|
sp-keyring = { path = "../../../../../substrate/primitives/keyring" }
|
|
sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-features = false }
|
|
sp-std = { path = "../../../../../substrate/primitives/std", default-features = false }
|
|
sp-tracing = { path = "../../../../../substrate/primitives/tracing" }
|
|
pallet-balances = { path = "../../../../../substrate/frame/balances", default-features = false }
|
|
pallet-utility = { path = "../../../../../substrate/frame/utility", default-features = false }
|
|
pallet-session = { path = "../../../../../substrate/frame/session", default-features = false }
|
|
|
|
# Cumulus
|
|
asset-test-utils = { path = "../../assets/test-utils" }
|
|
cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false, features = ["parameterized-consensus-hook"] }
|
|
cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false }
|
|
pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false }
|
|
parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false }
|
|
parachains-common = { path = "../../../common", default-features = false }
|
|
parachains-runtimes-test-utils = { path = "../../test-utils", default-features = false }
|
|
|
|
# Polkadot
|
|
pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false }
|
|
pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true }
|
|
xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false }
|
|
xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false }
|
|
xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false }
|
|
|
|
# Bridges
|
|
bp-header-chain = { path = "../../../../../bridges/primitives/header-chain", default-features = false }
|
|
bp-messages = { path = "../../../../../bridges/primitives/messages", default-features = false }
|
|
bp-parachains = { path = "../../../../../bridges/primitives/parachains", default-features = false }
|
|
bp-polkadot-core = { path = "../../../../../bridges/primitives/polkadot-core", default-features = false }
|
|
bp-relayers = { path = "../../../../../bridges/primitives/relayers", default-features = false }
|
|
bp-runtime = { path = "../../../../../bridges/primitives/runtime", default-features = false }
|
|
bp-test-utils = { path = "../../../../../bridges/primitives/test-utils", default-features = false }
|
|
pallet-bridge-grandpa = { path = "../../../../../bridges/modules/grandpa", default-features = false }
|
|
pallet-bridge-parachains = { path = "../../../../../bridges/modules/parachains", default-features = false }
|
|
pallet-bridge-messages = { path = "../../../../../bridges/modules/messages", default-features = false }
|
|
pallet-bridge-relayers = { path = "../../../../../bridges/modules/relayers", default-features = false }
|
|
bridge-runtime-common = { path = "../../../../../bridges/bin/runtime-common", default-features = false }
|
|
|
|
[features]
|
|
default = ["std"]
|
|
std = [
|
|
"asset-test-utils/std",
|
|
"bp-header-chain/std",
|
|
"bp-messages/std",
|
|
"bp-parachains/std",
|
|
"bp-polkadot-core/std",
|
|
"bp-relayers/std",
|
|
"bp-runtime/std",
|
|
"bp-test-utils/std",
|
|
"bridge-runtime-common/std",
|
|
"codec/std",
|
|
"cumulus-pallet-parachain-system/std",
|
|
"cumulus-pallet-xcmp-queue/std",
|
|
"frame-benchmarking/std",
|
|
"frame-executive/std",
|
|
"frame-support/std",
|
|
"frame-system/std",
|
|
"log/std",
|
|
"pallet-balances/std",
|
|
"pallet-bridge-grandpa/std",
|
|
"pallet-bridge-messages/std",
|
|
"pallet-bridge-parachains/std",
|
|
"pallet-bridge-relayers/std",
|
|
"pallet-collator-selection/std",
|
|
"pallet-session/std",
|
|
"pallet-utility/std",
|
|
"pallet-xcm-benchmarks?/std",
|
|
"pallet-xcm/std",
|
|
"parachain-info/std",
|
|
"parachains-common/std",
|
|
"parachains-runtimes-test-utils/std",
|
|
"sp-core/std",
|
|
"sp-io/std",
|
|
"sp-runtime/std",
|
|
"sp-std/std",
|
|
"xcm-builder/std",
|
|
"xcm-executor/std",
|
|
"xcm/std",
|
|
]
|