Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
8180033
revert: :fire: delete XCM tests
manuelmauro Feb 26, 2026
a103a4d
refactor: :recycle: rewirte XCM test suite
manuelmauro Feb 26, 2026
dfc1ccc
test: :white_check_mark: add more xcm-emulator tests
manuelmauro Feb 26, 2026
c5e013b
Merge branch 'master' into manuel/refactor-xcm-tests
manuelmauro Mar 2, 2026
7ce4aee
feat: :sparkles: use force-xcm-processor feature
manuelmauro Mar 3, 2026
9c0c922
test: strengthen xcm emulator test assertions
manuelmauro Mar 3, 2026
c93f511
test: restore legacy xcm_tests alongside new test suites
manuelmauro Mar 3, 2026
7344a91
test: restore legacy xcm_tests for moonbase and moonriver
manuelmauro Mar 3, 2026
c72d356
test: add 12 new xcm emulator tests (transact + transfer)
manuelmauro Mar 3, 2026
dbddfc7
test: add para-to-para signed transact tests
manuelmauro Mar 3, 2026
d315c0d
test: add EthereumXcm transact tests (para-to-para)
manuelmauro Mar 3, 2026
b8cbc6d
test: add native GLMR para-to-para transfer tests
manuelmauro Mar 3, 2026
c64e558
docs: add XCM emulator test coverage reference
manuelmauro Mar 3, 2026
2fea7f9
test: fix failing barrier test and add missing xcm config tests
manuelmauro Mar 6, 2026
b63ff7b
test: add multi-hop, remote-reserve, and versioning emulator tests
manuelmauro Mar 6, 2026
c0582a7
Merge remote-tracking branch 'origin/master' into manuel/refactor-xcm…
manuelmauro Mar 6, 2026
3a63dbf
chore: remove local polkadot-sdk patch and force-xcm-processor feature
manuelmauro Mar 6, 2026
5e30d29
test: add Asset Hub Westend to xcm-emulator network
manuelmauro Mar 6, 2026
b8c63ef
refactor: remove ParaCPara in favor of Asset Hub
manuelmauro Mar 6, 2026
bfa42c1
test: add xcm-emulator suites for moonriver and moonbase
manuelmauro Mar 6, 2026
c875486
Merge remote-tracking branch 'origin/master' into manuel/refactor-xcm…
manuelmauro Mar 6, 2026
a357252
refactor: remove legacy xcm_mock and xcm_tests.rs
manuelmauro Mar 6, 2026
5b129de
cleanup: remove unused functions and constants from xcm_integration_t…
manuelmauro Mar 6, 2026
f748adf
style: :art: fmt
manuelmauro Mar 6, 2026
19f9625
cleanup: remove COVERAGE.md files
manuelmauro Mar 6, 2026
09201b4
Merge remote-tracking branch 'origin' into manuel/refactor-xcm-tests
manuelmauro Mar 9, 2026
c297c28
docs: :fire: remove ADR
manuelmauro Mar 9, 2026
bbdb73a
fix: replace broken WithComputedOrigin depth limit test with proper b…
manuelmauro Mar 9, 2026
f0cde78
fix: split sibling sovereign account test to match actual behavior
manuelmauro Mar 9, 2026
bc11fd3
fix: replace no-op location pattern test with a real assertion
manuelmauro Mar 9, 2026
2e97c66
cleanup: deduplicate shared constants across xcm test files
manuelmauro Mar 9, 2026
2421b8f
fix: make reserves_accepts_self_reserve actually test the reserve filter
manuelmauro Mar 9, 2026
fe86a4c
fix: test IsTeleporter from config instead of hardcoded ()
manuelmauro Mar 9, 2026
996c2f2
style: rename test modules and files to idiomatic Rust conventions
manuelmauro Mar 9, 2026
7c74f19
test: add missing xcm_config tests to fully cover xcm_integration gaps
manuelmauro Mar 9, 2026
3378765
refactor: remove xcm_integration (xcm-simulator) test suite
manuelmauro Mar 9, 2026
69c49e5
fix: strengthen trader refund test to assert Some, native asset id, a…
manuelmauro Mar 9, 2026
9f0dad4
fix: use typed ParaLifecycle::Parachain instead of hardcoded 2u8 in r…
manuelmauro Mar 9, 2026
375788b
fix: assert reserves through IsReserve to verify runtime wiring
manuelmauro Mar 9, 2026
d2a7123
fix: assert foreign asset balance changes in deposit and withdraw tra…
manuelmauro Mar 9, 2026
4ffcd04
fix(xcm-tests): use distinct recipient in no-proxy negative test
manuelmauro Mar 10, 2026
7a902b9
fix(xcm-tests): replace query_xcm_weight with query_delivery_fees in …
manuelmauro Mar 10, 2026
f34d555
fix(xcm-tests): check two distinct pallets in safe_call_filter_allows…
manuelmauro Mar 10, 2026
5bf1299
docs(xcm-tests): fix stale 'Moonbase' references in module doc comments
manuelmauro Mar 10, 2026
d71c15c
fix(xcm-tests): assert first buy_weight succeeds in cannot_buy_weight…
manuelmauro Mar 10, 2026
69857f3
fix(xcm-tests): rename MOONBEAM_PARA_ID to match runtime under test
manuelmauro Mar 12, 2026
af03f06
fix(xcm-tests): replace as_u128() with try_into().unwrap() for U256 c…
manuelmauro Mar 12, 2026
db0ce43
docs(xcm-tests): fix copyright headers to say Moonbeam Foundation
manuelmauro Mar 12, 2026
78b2e53
docs(xcm-tests): fix endowment comment to reflect WND 12-decimal value
manuelmauro Mar 12, 2026
3673aac
fix(xcm-tests): derive and assert Westend pallet indices via PalletIn…
manuelmauro Mar 12, 2026
2f9945b
fix(xcm-tests): assert native balance is zero after burn_from in drai…
manuelmauro Mar 12, 2026
574866e
docs(xcm-tests): fix pallet_balances index comment in moonbase transfers
manuelmauro Mar 12, 2026
1b0bde2
docs(xcm-tests): fix asset_hub_genesis endowment comment
manuelmauro Mar 12, 2026
85176e7
docs(xcm-tests): fix Reserves doc comments in moonbase and moonriver
manuelmauro Mar 12, 2026
90d11b6
Merge remote-tracking branch 'origin/master' into manuel/refactor-xcm…
manuelmauro Mar 17, 2026
f4f65f8
Merge branch 'master' into manuel/refactor-xcm-tests
manuelmauro Mar 18, 2026
e318475
Merge branch 'master' into manuel/refactor-xcm-tests
manuelmauro Mar 20, 2026
8da5ff6
Merge branch 'master' into manuel/refactor-xcm-tests
manuelmauro Mar 31, 2026
1db0d07
Merge branch 'master' into manuel/refactor-xcm-tests
manuelmauro Apr 3, 2026
583cbfe
chore: update Cargo.lock after merge conflict resolution
manuelmauro Apr 3, 2026
845db39
fix: pin alloy crates to v1.6.3 for MSRV compat and allow LGPL-3.0-or…
manuelmauro Apr 3, 2026
d4b3b10
fix: update XcmPaymentApi from V1 to V2 in versioning tests
manuelmauro Apr 3, 2026
a20e29a
Merge branch 'master' into manuel/refactor-xcm-tests
manuelmauro Apr 15, 2026
c5c4e31
fix(xcm-tests): wire Nimbus BlockProducer into xcm-emulator parachains
manuelmauro Apr 15, 2026
854b516
style: cargo fmt xcm_emulator network modules
manuelmauro Apr 15, 2026
d17c5ec
fix(xcm-tests): resolve deprecation and unused import warnings
manuelmauro Apr 16, 2026
a71db5c
docs(cherry-picks): link upstream PR for xcm-emulator BlockProducer
manuelmauro Apr 16, 2026
3776172
fix(xcm-tests): wire genesis state for xcm-emulator parachains
manuelmauro Apr 16, 2026
1605eb7
Merge remote-tracking branch 'origin/master' into manuel/refactor-xcm…
manuelmauro Apr 16, 2026
206f107
docs(cherry-picks): mark xcm-emulator BlockProducer PR as merged
manuelmauro Apr 17, 2026
5672877
Merge branch 'master' into manuel/refactor-xcm-tests
manuelmauro Apr 28, 2026
7dd0425
Merge remote-tracking branch 'origin/master' into manuel/refactor-xcm…
manuelmauro May 4, 2026
513a6a6
test(xcm): :white_check_mark: add Moonbeam→AssetHub return-leg coverage
manuelmauro May 5, 2026
b3ab5a9
build(runtime): :package: gate xcm-emulator deps behind opt-in feature
manuelmauro May 5, 2026
1b62aef
ci: :construction_worker: add xcm-emulator-test job
manuelmauro May 5, 2026
0210f2b
revert: :rewind: undo xcm-emulator feature gating
manuelmauro May 5, 2026
465c898
build(moonbeam): :wrench: drop unused pallet-delegated-staking dev-dep
manuelmauro May 5, 2026
1476f55
refactor(xcm-tests): :recycle: split xcm-emulator tests into separate…
manuelmauro May 5, 2026
c3c7b35
Merge remote-tracking branch 'origin/master' into manuel/refactor-xcm…
manuelmauro May 5, 2026
99da47d
ci: :construction_worker: gate xcm-emulator-test on `XCM` label / mas…
manuelmauro May 5, 2026
6510860
fix(xcm-tests): :bug: enable forbid-evm-reentrancy on pallet-ethereum
manuelmauro May 5, 2026
12e0883
ci: :construction_worker: trigger CI to verify XCM gating
manuelmauro May 6, 2026
e640683
build: :wrench: propagate missing crate features for zepter
manuelmauro May 8, 2026
128d856
build(workspace): :package: drop unused xcm-simulator dependency
manuelmauro May 8, 2026
c7b6c1d
chore: :rotating_light: remove duplicate .pi/ entry in .gitignore
manuelmauro May 8, 2026
afafcf8
test(xcm-tests): :white_check_mark: assert sovereign strictly spent DOT
manuelmauro May 8, 2026
7f386ec
test(xcm-tests): :white_check_mark: derive weigher limit from MaxInst…
manuelmauro May 8, 2026
cd5ef77
Merge branch 'master' into manuel/refactor-xcm-tests
manuelmauro May 18, 2026
d0d7ad4
ci(xcm-tests): :construction_worker: gate xcm-emulator-test on any_ch…
manuelmauro May 18, 2026
a979682
test(xcm-config): :white_check_mark: assert ERC20 bridge deposit fail…
manuelmauro May 18, 2026
ddf63d2
Merge remote-tracking branch 'origin/master' into manuel/refactor-xcm…
manuelmauro May 26, 2026
610409e
ci: :construction_worker: run xcm-emulator-test on blacksmith runner
manuelmauro May 26, 2026
db5905f
chore: :pencil2: fix Moonriver copyright header in versioning test
manuelmauro May 26, 2026
c880ba8
ci: :construction_worker: pin sccache action and gate xcm-emulator-te…
manuelmauro May 26, 2026
f53d841
test(xcm-config): :white_check_mark: assert concrete converted origin…
manuelmauro May 26, 2026
07e968f
ci: :construction_worker: gate xcm-emulator-test behind the quick rus…
manuelmauro May 26, 2026
1386cb3
test(xcm-emulator): :pencil2: refer to Moonriver's native token as MOVR
manuelmauro May 26, 2026
6cbbf3b
ci: :construction_worker: align xcm-emulator-test with the rust-test job
manuelmauro May 26, 2026
4420498
Merge branch 'master' into manuel/refactor-xcm-tests
manuelmauro Jun 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 90 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -508,9 +508,98 @@ jobs:
run: |
cargo check --profile rust-tests --workspace --features=runtime-benchmarks
# Checks are run after uploading artifacts since they are modified by the tests
# The xcm-emulator-tests crates are workspace members so the dedicated
# `xcm-emulator-test` job can address them with `-p`, but they pull the
# heavy Westend + Asset Hub Westend graph. Exclude them here so the
# default test job neither builds nor re-runs that suite.
- name: Unit tests
run: |
cargo test --profile rust-tests --workspace --features=evm-tracing
cargo test --profile rust-tests --workspace --features=evm-tracing \
--exclude moonbeam-xcm-emulator-tests \
--exclude moonriver-xcm-emulator-tests \
--exclude moonbase-xcm-emulator-tests

# Dedicated job for the xcm-emulator integration tests, which live in
# their own workspace crates (`runtime/<chain>/xcm-emulator-tests`) so the
# Westend + Asset Hub Westend dependency graph doesn't slow down the
# default `rust-test` job. Compiles the heavy graph once and runs all
# three runtimes' tests in a single job (sccache reuse). Only fires when
# Rust source files change.
# Opt-in only on PRs: the XCM emulator suite is heavy (Westend + Asset Hub
# Westend), so we don't want it on the critical path of every PR. It runs
# when:
# - a PR is labelled `XCM`,
# - the workflow is triggered manually (`workflow_dispatch`), or
# - on push to `master`/`perm-*` (so master is at least eventually
# validated, since there's no merge queue to gate pre-merge).
xcm-emulator-test:
# Keep this heavy job behind the cheap Rust checks so formatting or
# repository-rule failures stop the PR before it consumes the larger runner.
# always() is required on jobs with needs: otherwise GitHub skips the job before
# evaluating this condition when any dependency was skipped.
if: |
always() &&
(
github.event_name == 'push'
|| github.event_name == 'workflow_dispatch'
|| (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'XCM'))
) &&
needs.set-tags.outputs.blacksmith_allowed == 'true' &&
needs.set-tags.outputs.rust_changed == 'true' &&
needs.check-cargo-toml-format.result == 'success' &&
needs.check-forbid-evm-reentrancy.result == 'success' &&
needs.check-rust-fmt.result == 'success'
runs-on: blacksmith-16vcpu-ubuntu-2404
timeout-minutes: 30
permissions:
contents: read
needs:
[
"set-tags",
"check-cargo-toml-format",
"check-forbid-evm-reentrancy",
"check-rust-fmt",
]
env:
RUSTC_WRAPPER: "sccache"
CARGO_INCREMENTAL: "0"
SCCACHE_CACHE_SIZE: "100GB"
SCCACHE_DIR: ${{ github.workspace }}/.sccache
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
ref: ${{ needs.set-tags.outputs.git_ref }}
persist-credentials: false
- name: Read Rust toolchain cache key
id: rust-toolchain-cache-key
uses: ./.github/workflow-templates/rust-toolchain-cache-key
- name: Mount Blacksmith sccache disk
uses: useblacksmith/stickydisk@13af8883542ca949a717e70fef89d15edbb29d88
with:
key: ${{ github.repository }}-sccache-xcm-emulator-${{ runner.os }}-${{ steps.rust-toolchain-cache-key.outputs.cache-key }}
path: .sccache
- name: Run sccache-cache
Comment thread
manuelmauro marked this conversation as resolved.
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696
- name: Setup Variables
shell: bash
run: |
echo "RUSTFLAGS=-C opt-level=3 -D warnings -C linker=clang -C link-arg=-fuse-ld=$(pwd)/mold/bin/mold" >> $GITHUB_ENV
- name: Setup Mold Linker
shell: bash
run: |
mkdir -p mold
curl -L --retry 10 --silent --show-error https://github.com/rui314/mold/releases/download/v2.39.0/mold-2.39.0-$(uname -m)-linux.tar.gz | tar -C $(realpath mold) --strip-components=1 -xzf -
- name: Install native build dependencies
uses: ./.github/workflow-templates/native-build-deps
- name: Setup Rust toolchain
uses: ./.github/workflow-templates/rust-toolchain
- name: xcm-emulator integration tests (moonbeam, moonriver, moonbase)
run: |
cargo test --profile rust-tests \
-p moonbeam-xcm-emulator-tests \
-p moonriver-xcm-emulator-tests \
-p moonbase-xcm-emulator-tests

Comment thread
coderabbitai[bot] marked this conversation as resolved.
# Renable typegen_check when we have a bot in place to update PR for us in case of missing it

Expand Down
Loading