diff --git a/run_blockchain_tests.sh b/run_blockchain_tests.sh index 74af6a89..646e79cd 100755 --- a/run_blockchain_tests.sh +++ b/run_blockchain_tests.sh @@ -14,7 +14,11 @@ eprintln(){ } cleanup() { - docker kill test_container + if test "$id"; then + eprintln "cleaning up $blockchain docker container $id"; + docker rm -fv "$id" > /dev/null; + rm /tmp/regtest-"$id".cookie; + fi trap - EXIT INT } @@ -27,16 +31,16 @@ 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 + id="$(docker run --detach -p 127.0.0.1:18443-18444:18443-18444/tcp -p 127.0.0.1:60401:60401/tcp 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 + id="$(docker run --detach -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 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 + id="$(docker run --detach -p 127.0.0.1:18443-18444:18443-18444/tcp -p 127.0.0.1:60401:60401/tcp bitcoindevkit/electrs:0.4.0)" ;; *) usage; @@ -46,13 +50,13 @@ case "$blockchain" in # taken from https://github.com/bitcoindevkit/bitcoin-regtest-box export BDK_RPC_AUTH=COOKIEFILE -export BDK_RPC_COOKIEFILE=/tmp/regtest.cookie +export BDK_RPC_COOKIEFILE=/tmp/regtest-"$id".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 $@ + docker exec -it "$id" /root/bitcoin-cli -regtest -datadir=/root/.bitcoin $@ } #eprintln "running getwalletinfo until bitcoind seems to be alive" @@ -62,6 +66,6 @@ while ! cli getwalletinfo >/dev/null; do sleep 1; done sleep 1; # copy bitcoind cookie file to /tmp -docker cp test_container:/root/.bitcoin/regtest/.cookie /tmp/regtest.cookie +docker cp "$id":/root/.bitcoin/regtest/.cookie /tmp/regtest-"$id".cookie cargo test --features "test-blockchains,test-$blockchain" --no-default-features "$blockchain::bdk_blockchain_tests::$test_name"