68 lines
2.0 KiB
Bash
Executable File
68 lines
2.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
usage() {
|
|
cat <<'EOF'
|
|
Script for running the bdk blockchain tests for a specific blockchain by starting up the backend in docker.
|
|
|
|
Usage: ./run_blockchain_tests.sh [esplora|electrum|rpc] [test name].
|
|
|
|
EOF
|
|
}
|
|
|
|
eprintln(){
|
|
echo "$@" >&2
|
|
}
|
|
|
|
cleanup() {
|
|
docker kill test_container
|
|
trap - EXIT INT
|
|
}
|
|
|
|
# Makes sure we clean up the container at the end or if ^C
|
|
trap 'rc=$?; cleanup; exit $rc' EXIT INT
|
|
|
|
blockchain="$1"
|
|
test_name="$2"
|
|
|
|
case "$blockchain" in
|
|
electrum)
|
|
eprintln "starting electrs docker container"
|
|
docker run --detach --rm -p 127.0.0.1:18443-18444:18443-18444/tcp -p 127.0.0.1:60401:60401/tcp --name test_container bitcoindevkit/electrs:0.4.0
|
|
;;
|
|
esplora)
|
|
eprintln "starting esplora docker container"
|
|
docker run --detach --rm -p 127.0.0.1:18443-18444:18443-18444/tcp -p 127.0.0.1:60401:60401/tcp -p 127.0.0.1:3002:3002/tcp --name test_container bitcoindevkit/esplora:0.4.0
|
|
export BDK_ESPLORA_URL=http://127.0.0.1:3002
|
|
;;
|
|
rpc)
|
|
eprintln "starting bitcoind docker container (via electrs container)"
|
|
docker run --detach --rm -p 127.0.0.1:18443-18444:18443-18444/tcp -p 127.0.0.1:60401:60401/tcp --name test_container bitcoindevkit/electrs:0.4.0
|
|
;;
|
|
*)
|
|
usage;
|
|
exit 1;
|
|
;;
|
|
esac
|
|
|
|
# taken from https://github.com/bitcoindevkit/bitcoin-regtest-box
|
|
export BDK_RPC_AUTH=COOKIEFILE
|
|
export BDK_RPC_COOKIEFILE=/tmp/regtest.cookie
|
|
export BDK_RPC_URL=127.0.0.1:18443
|
|
export BDK_RPC_WALLET=bdk-test
|
|
export BDK_ELECTRUM_URL=tcp://127.0.0.1:60401
|
|
|
|
cli(){
|
|
docker exec -it test_container /root/bitcoin-cli -regtest -datadir=/root/.bitcoin $@
|
|
}
|
|
|
|
#eprintln "running getwalletinfo until bitcoind seems to be alive"
|
|
while ! cli getwalletinfo >/dev/null; do sleep 1; done
|
|
|
|
# sleep again for good measure!
|
|
sleep 1;
|
|
|
|
# copy bitcoind cookie file to /tmp
|
|
docker cp test_container:/root/.bitcoin/regtest/.cookie /tmp/regtest.cookie
|
|
|
|
cargo test --features "test-blockchains,test-$blockchain" --no-default-features "$blockchain::bdk_blockchain_tests::$test_name"
|