mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 19:51:02 +00:00
[testnet] Add AssetHubRococo <-> AssetHubWestend asset bridging support (#1967)
## Summary Asset bridging support for AssetHub**Rococo** <-> AssetHub**Wococo** was added [here](https://github.com/paritytech/polkadot-sdk/pull/1215), so now we aim to bridge AssetHub**Rococo** and AssetHub**Westend**. (And perhaps retire AssetHubWococo and the Wococo chains). ## Solution **bridge-hub-westend-runtime** - added new runtime as a copy of `bridge-hub-rococo-runtime` - added support for bridging to `BridgeHubRococo` - added tests and benchmarks **bridge-hub-rococo-runtime** - added support for bridging to `BridgeHubWestend` - added tests and benchmarks - internal refactoring by splitting bridge configuration per network, e.g., `bridge_to_whatevernetwork_config.rs`. **asset-hub-rococo-runtime** - added support for asset bridging to `AssetHubWestend` (allows to receive only WNDs) - added new xcm router for `Westend` - added tests and benchmarks **asset-hub-westend-runtime** - added support for asset bridging to `AssetHubRococo` (allows to receive only ROCs) - added new xcm router for `Rococo` - added tests and benchmarks ## Deployment All changes will be deployed as a part of https://github.com/paritytech/polkadot-sdk/issues/1988. ## TODO - [x] benchmarks for all pallet instances - [x] integration tests - [x] local run scripts Relates to: https://github.com/paritytech/parity-bridges-common/issues/2602 Relates to: https://github.com/paritytech/polkadot-sdk/issues/1988 --------- Co-authored-by: command-bot <> Co-authored-by: Adrian Catangiu <adrian@parity.io> Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
This commit is contained in:
Executable
+97
@@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
#set -eu
|
||||
shopt -s nullglob
|
||||
|
||||
trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT
|
||||
|
||||
# assuming that we'll be using native provide && all processes will be executing locally
|
||||
# (we need absolute paths here, because they're used when scripts are called by zombienet from tmp folders)
|
||||
export POLKADOT_SDK_FOLDER=`realpath $(dirname "$0")/../..`
|
||||
export BRIDGE_TESTS_FOLDER=$POLKADOT_SDK_FOLDER/bridges/zombienet/tests
|
||||
export POLKADOT_BINARY_PATH=$POLKADOT_SDK_FOLDER/target/release/polkadot
|
||||
export POLKADOT_PARACHAIN_BINARY_PATH=$POLKADOT_SDK_FOLDER/target/release/polkadot-parachain
|
||||
export POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_ROCOCO=$POLKADOT_PARACHAIN_BINARY_PATH
|
||||
export POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WOCOCO=$POLKADOT_PARACHAIN_BINARY_PATH
|
||||
export ZOMBIENET_BINARY_PATH=~/local_bridge_testing/bin/zombienet-linux
|
||||
|
||||
# bridge configuration
|
||||
export LANE_ID="00000001"
|
||||
|
||||
# tests configuration
|
||||
ALL_TESTS_FOLDER=`mktemp -d`
|
||||
|
||||
function start_coproc() {
|
||||
local command=$1
|
||||
local name=$2
|
||||
local coproc_log=`mktemp -p $TEST_FOLDER`
|
||||
coproc COPROC {
|
||||
$command >$coproc_log 2>&1
|
||||
}
|
||||
TEST_COPROCS[$COPROC_PID, 0]=$name
|
||||
TEST_COPROCS[$COPROC_PID, 1]=$coproc_log
|
||||
echo "Spawned $name coprocess. StdOut + StdErr: $coproc_log"
|
||||
|
||||
return $COPROC_PID
|
||||
}
|
||||
|
||||
# execute every test from tests folder
|
||||
TEST_INDEX=1
|
||||
while true
|
||||
do
|
||||
declare -A TEST_COPROCS
|
||||
TEST_COPROCS_COUNT=0
|
||||
TEST_PREFIX=$(printf "%04d" $TEST_INDEX)
|
||||
|
||||
# it'll be used by the `sync-exit.sh` script
|
||||
export TEST_FOLDER=`mktemp -d -p $ALL_TESTS_FOLDER`
|
||||
|
||||
# check if there are no more tests
|
||||
zndsl_files=($BRIDGE_TESTS_FOLDER/$TEST_PREFIX-*.zndsl)
|
||||
if [ ${#zndsl_files[@]} -eq 0 ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
# start relay
|
||||
if [ -f $BRIDGE_TESTS_FOLDER/$TEST_PREFIX-start-relay.sh ]; then
|
||||
start_coproc "${BRIDGE_TESTS_FOLDER}/${TEST_PREFIX}-start-relay.sh" "relay"
|
||||
RELAY_COPROC=$COPROC_PID
|
||||
((TEST_COPROCS_COUNT++))
|
||||
fi
|
||||
# start tests
|
||||
for zndsl_file in "${zndsl_files[@]}"; do
|
||||
start_coproc "$ZOMBIENET_BINARY_PATH --provider native test $zndsl_file" "$zndsl_file"
|
||||
echo -n "1">>$TEST_FOLDER/exit-sync
|
||||
((TEST_COPROCS_COUNT++))
|
||||
done
|
||||
# wait until all tests are completed
|
||||
relay_exited=0
|
||||
for n in `seq 1 $TEST_COPROCS_COUNT`; do
|
||||
wait -n -p COPROC_PID
|
||||
exit_code=$?
|
||||
coproc_name=${TEST_COPROCS[$COPROC_PID, 0]}
|
||||
coproc_log=${TEST_COPROCS[$COPROC_PID, 1]}
|
||||
coproc_stdout=$(cat $coproc_log)
|
||||
relay_exited=$(expr "${coproc_name}" == "relay")
|
||||
echo "Process $coproc_name has finished with exit code: $exit_code"
|
||||
|
||||
# if exit code is not zero, exit
|
||||
if [ $exit_code -ne 0 ]; then
|
||||
echo "====================================================================="
|
||||
echo "=== Shutting down. Log of failed process below ==="
|
||||
echo "====================================================================="
|
||||
echo $coproc_stdout
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# if last test has exited, exit relay too
|
||||
if [ $n -eq $(($TEST_COPROCS_COUNT - 1)) ] && [ $relay_exited -eq 0 ]; then
|
||||
kill $RELAY_COPROC
|
||||
break
|
||||
fi
|
||||
done
|
||||
((TEST_INDEX++))
|
||||
done
|
||||
|
||||
echo "====================================================================="
|
||||
echo "=== All tests have completed successfully ==="
|
||||
echo "====================================================================="
|
||||
Reference in New Issue
Block a user