Fix bash based rpc tests
This commit is contained in:
parent
8826b6bdc4
commit
c90916699a
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2014 The Bitcoin Core developers
|
||||
# Copyright (c) 2014 The Dogecoin Core developers
|
||||
# Distributed under the MIT/X11 software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -23,8 +24,8 @@ fi
|
|||
|
||||
set -f
|
||||
|
||||
BITCOIND=${1}/bitcoind
|
||||
CLI=${1}/bitcoin-cli
|
||||
BITCOIND=${1}/dogecoind
|
||||
CLI=${1}/dogecoin-cli
|
||||
|
||||
DIR="${BASH_SOURCE%/*}"
|
||||
SENDANDWAIT="${DIR}/send.sh"
|
||||
|
@ -81,16 +82,16 @@ echo "Generating test blockchain..."
|
|||
$CLI $B2ARGS addnode 127.0.0.1:11000 onetry
|
||||
WaitPeers "$B1ARGS" 1
|
||||
|
||||
# 2 block, 50 XBT each == 100 XBT
|
||||
# 2 block, 500000 XDG each == 1000000 XDG
|
||||
# These will be transactions "A" and "B"
|
||||
$CLI $B1ARGS setgenerate true 2
|
||||
|
||||
WaitBlocks
|
||||
# 100 blocks, 0 mature == 0 XBT
|
||||
$CLI $B2ARGS setgenerate true 100
|
||||
# 49 blocks, 0 mature == 0 XDG
|
||||
$CLI $B2ARGS setgenerate true 49
|
||||
WaitBlocks
|
||||
|
||||
CheckBalance "$B1ARGS" 100
|
||||
CheckBalance "$B1ARGS" 1000000
|
||||
CheckBalance "$B2ARGS" 0
|
||||
|
||||
# restart B2 with no connection
|
||||
|
@ -103,10 +104,10 @@ B1ADDRESS=$( $CLI $B1ARGS getnewaddress )
|
|||
B2ADDRESS=$( $CLI $B2ARGS getnewaddress )
|
||||
|
||||
# Transaction C: send-to-self, spend A
|
||||
TXID_C=$( $CLI $B1ARGS sendtoaddress $B1ADDRESS 50.0)
|
||||
TXID_C=$( $CLI $B1ARGS sendtoaddress $B1ADDRESS 500000.0)
|
||||
|
||||
# Transaction D: spends B and C
|
||||
TXID_D=$( $CLI $B1ARGS sendtoaddress $B2ADDRESS 100.0)
|
||||
TXID_D=$( $CLI $B1ARGS sendtoaddress $B2ADDRESS 1000000.0)
|
||||
|
||||
CheckBalance "$B1ARGS" 0
|
||||
|
||||
|
@ -132,9 +133,9 @@ WaitPeers "$B1ARGS" 1
|
|||
$CLI $B2ARGS setgenerate true 1
|
||||
WaitBlocks
|
||||
|
||||
# B1 should still be able to spend 100, because D is conflicted
|
||||
# B1 should still be able to spend 1000000, because D is conflicted
|
||||
# so does not count as a spend of B
|
||||
CheckBalance "$B1ARGS" 100
|
||||
CheckBalance "$B1ARGS" 1000000
|
||||
|
||||
$CLI $B2ARGS stop > /dev/null 2>&1
|
||||
wait $B2PID
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2014 The Bitcoin Core developers
|
||||
# Copyright (c) 2014 The Dogecoin Core developers
|
||||
# Distributed under the MIT/X11 software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -13,8 +14,8 @@ fi
|
|||
|
||||
set -f
|
||||
|
||||
BITCOIND=${1}/bitcoind
|
||||
CLI=${1}/bitcoin-cli
|
||||
BITCOIND=${1}/dogecoind
|
||||
CLI=${1}/dogecoin-cli
|
||||
|
||||
DIR="${BASH_SOURCE%/*}"
|
||||
SENDANDWAIT="${DIR}/send.sh"
|
||||
|
@ -71,15 +72,15 @@ echo "Generating test blockchain..."
|
|||
$CLI $B2ARGS addnode 127.0.0.1:11000 onetry
|
||||
WaitPeers "$B1ARGS" 1
|
||||
|
||||
# 1 block, 50 XBT each == 50 XBT
|
||||
# 1 block, 500000 XDG each == 50 XDG
|
||||
$CLI $B1ARGS setgenerate true 1
|
||||
|
||||
WaitBlocks
|
||||
# 100 blocks, 0 mature == 0 XBT
|
||||
$CLI $B2ARGS setgenerate true 100
|
||||
# 49 blocks, 0 mature == 0 XDG
|
||||
$CLI $B2ARGS setgenerate true 49
|
||||
WaitBlocks
|
||||
|
||||
CheckBalance "$B1ARGS" 50
|
||||
CheckBalance "$B1ARGS" 500000
|
||||
CheckBalance "$B2ARGS" 0
|
||||
|
||||
# restart B2 with no connection
|
||||
|
@ -92,7 +93,7 @@ B2ADDRESS=$( $CLI $B2ARGS getaccountaddress "from1" )
|
|||
|
||||
# Have B1 create two transactions; second will
|
||||
# spend change from first, since B1 starts with only a single
|
||||
# 50 bitcoin output:
|
||||
# 500000 dogecoin output:
|
||||
$CLI $B1ARGS move "" "foo" 10.0 > /dev/null
|
||||
$CLI $B1ARGS move "" "bar" 10.0 > /dev/null
|
||||
TXID1=$( $CLI $B1ARGS sendfrom foo $B2ADDRESS 1.0 0)
|
||||
|
@ -129,16 +130,16 @@ $CLI $B2ARGS addnode 127.0.0.1:11000 onetry
|
|||
$CLI $B2ARGS setgenerate true 1
|
||||
WaitBlocks
|
||||
|
||||
# B1 should have 49 BTC; the 2 BTC send is
|
||||
# B1 should have 499999 DOGE; the 2 DOGE send is
|
||||
# conflicted, and should not count in
|
||||
# balances.
|
||||
CheckBalance "$B1ARGS" 49
|
||||
CheckBalance "$B1ARGS" 49 "*"
|
||||
CheckBalance "$B1ARGS" 499999
|
||||
CheckBalance "$B1ARGS" 499999 "*"
|
||||
CheckBalance "$B1ARGS" 9 "foo"
|
||||
CheckBalance "$B1ARGS" 10 "bar"
|
||||
|
||||
# B2 should have 51 BTC
|
||||
CheckBalance "$B2ARGS" 51
|
||||
# B2 should have 500001 DOGE
|
||||
CheckBalance "$B2ARGS" 500001
|
||||
CheckBalance "$B2ARGS" 1 "from1"
|
||||
|
||||
$CLI $B2ARGS stop > /dev/null 2>&1
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2014 The Bitcoin Core developers
|
||||
# Copyright (c) 2014 The Dogecoin Core developers
|
||||
# Distributed under the MIT/X11 software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -20,7 +21,7 @@ function ExtractKey {
|
|||
function CreateDataDir {
|
||||
DIR=$1
|
||||
mkdir -p $DIR
|
||||
CONF=$DIR/bitcoin.conf
|
||||
CONF=$DIR/dogecoin.conf
|
||||
echo "regtest=1" >> $CONF
|
||||
echo "keypool=2" >> $CONF
|
||||
echo "rpcuser=rt" >> $CONF
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2013-2014 The Bitcoin Core developers
|
||||
# Copyright (c) 2014 The Dogecoin Core developers
|
||||
# Distributed under the MIT/X11 software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -13,8 +14,8 @@ fi
|
|||
|
||||
set -f
|
||||
|
||||
BITCOIND=${1}/bitcoind
|
||||
CLI=${1}/bitcoin-cli
|
||||
BITCOIND=${1}/dogecoind
|
||||
CLI=${1}/dogecoin-cli
|
||||
|
||||
DIR="${BASH_SOURCE%/*}"
|
||||
SENDANDWAIT="${DIR}/send.sh"
|
||||
|
@ -58,21 +59,21 @@ function WaitBlocks {
|
|||
|
||||
echo "Generating test blockchain..."
|
||||
|
||||
# 1 block, 50 XBT each == 50 XBT
|
||||
# 1 block, 500000 XDG each == 500000 XDG
|
||||
$CLI $B1ARGS setgenerate true 1
|
||||
WaitBlocks
|
||||
# 101 blocks, 1 mature == 50 XBT
|
||||
$CLI $B2ARGS setgenerate true 101
|
||||
# 50 blocks, 1 mature == 500000 XDG
|
||||
$CLI $B2ARGS setgenerate true 50
|
||||
WaitBlocks
|
||||
|
||||
CheckBalance "$B1ARGS" 50
|
||||
CheckBalance "$B2ARGS" 50
|
||||
CheckBalance "$B1ARGS" 500000
|
||||
CheckBalance "$B2ARGS" 500000
|
||||
|
||||
# Send 21 XBT from 1 to 3. Second
|
||||
# Send 210000 XDG from 1 to 3. Second
|
||||
# transaction will be child of first, and
|
||||
# will require a fee
|
||||
Send $B1ARGS $B3ARGS 11
|
||||
Send $B1ARGS $B3ARGS 10
|
||||
Send $B1ARGS $B3ARGS 110000
|
||||
Send $B1ARGS $B3ARGS 100000
|
||||
|
||||
# Have B1 mine a new block, and mature it
|
||||
# to recover transaction fees
|
||||
|
@ -80,13 +81,13 @@ $CLI $B1ARGS setgenerate true 1
|
|||
WaitBlocks
|
||||
|
||||
# Have B2 mine 100 blocks so B1's block is mature:
|
||||
$CLI $B2ARGS setgenerate true 100
|
||||
$CLI $B2ARGS setgenerate true 49
|
||||
WaitBlocks
|
||||
|
||||
# B1 should end up with 100 XBT in block rewards plus fees,
|
||||
# minus the 21 XBT sent to B3:
|
||||
CheckBalance "$B1ARGS" "100-21"
|
||||
CheckBalance "$B3ARGS" "21"
|
||||
# B1 should end up with 1000k XDG in block rewards plus fees,
|
||||
# minus the 210k XDG sent to B3:
|
||||
CheckBalance "$B1ARGS" "1000000-210000"
|
||||
CheckBalance "$B3ARGS" "210000"
|
||||
|
||||
# B1 should have two unspent outputs; create a couple
|
||||
# of raw transactions to send them to B3, submit them through
|
||||
|
@ -102,8 +103,8 @@ WaitBlocks
|
|||
|
||||
# Check balances after confirmation
|
||||
CheckBalance "$B1ARGS" 0
|
||||
CheckBalance "$B3ARGS" 100
|
||||
CheckBalance "$B3ARGS" "100-21" "from1"
|
||||
CheckBalance "$B3ARGS" 1000000
|
||||
CheckBalance "$B3ARGS" "1000000-210000" "from1"
|
||||
|
||||
$CLI $B3ARGS stop > /dev/null 2>&1
|
||||
wait $B3PID
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2014 The Bitcoin Core developers
|
||||
# Copyright (c) 2014 The Dogecoin Core developers
|
||||
# Distributed under the MIT/X11 software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -9,7 +10,7 @@
|
|||
# 4 nodes. 1 2 3 and send transactions between each other,
|
||||
# fourth node is a miner.
|
||||
# 1 2 3 and each mine a block to start, then
|
||||
# miner creates 100 blocks so 1 2 3 each have 50 mature
|
||||
# miner creates 49 blocks so 1 2 3 each have 500k mature
|
||||
# coins to spend.
|
||||
# Then 5 iterations of 1/2/3 sending coins amongst
|
||||
# themselves to get transactions in the wallets,
|
||||
|
@ -18,13 +19,9 @@
|
|||
# Wallets are backed up using dumpwallet/backupwallet.
|
||||
# Then 5 more iterations of transactions, then block.
|
||||
#
|
||||
# Miner then generates 101 more blocks, so any
|
||||
# Miner then generates 50 more blocks, so any
|
||||
# transaction fees paid mature.
|
||||
#
|
||||
# Sanity checks done:
|
||||
# Miner balance >= 150*50
|
||||
# Sum(1,2,3,4 balances) == 153*150
|
||||
#
|
||||
# 1/2/3 are shutdown, and their wallets erased.
|
||||
# Then restore using wallet.dat backup. And
|
||||
# confirm 1/2/3/4 balances are same as before.
|
||||
|
@ -39,8 +36,8 @@ if [ $# -lt 1 ]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
BITCOIND=${1}/bitcoind
|
||||
CLI=${1}/bitcoin-cli
|
||||
BITCOIND=${1}/dogecoind
|
||||
CLI=${1}/dogecoin-cli
|
||||
|
||||
DIR="${BASH_SOURCE%/*}"
|
||||
SENDANDWAIT="${DIR}/send.sh"
|
||||
|
@ -64,7 +61,7 @@ B4PID=$!
|
|||
function CreateConfDir {
|
||||
DIR=$1
|
||||
mkdir -p $DIR
|
||||
CONF=$DIR/bitcoin.conf
|
||||
CONF=$DIR/dogecoin.conf
|
||||
echo "regtest=1" >> $CONF
|
||||
echo "rpcuser=rt" >> $CONF
|
||||
echo "rpcpassword=rt" >> $CONF
|
||||
|
@ -128,7 +125,7 @@ function WaitMemPools {
|
|||
|
||||
echo "Generating initial blockchain..."
|
||||
|
||||
# 1 block, 50 XBT each == 50 BTC
|
||||
# 1 block, 500000 XDG each == 500000 DOGE
|
||||
$CLI $B1ARGS setgenerate true 1
|
||||
WaitBlocks
|
||||
$CLI $B2ARGS setgenerate true 1
|
||||
|
@ -136,13 +133,13 @@ WaitBlocks
|
|||
$CLI $B3ARGS setgenerate true 1
|
||||
WaitBlocks
|
||||
|
||||
# 100 blocks, 0 mature
|
||||
$CLI $B4ARGS setgenerate true 100
|
||||
# 49 blocks, 0 mature
|
||||
$CLI $B4ARGS setgenerate true 49
|
||||
WaitBlocks
|
||||
|
||||
CheckBalance "$B1ARGS" 50
|
||||
CheckBalance "$B2ARGS" 50
|
||||
CheckBalance "$B3ARGS" 50
|
||||
CheckBalance "$B1ARGS" 500000
|
||||
CheckBalance "$B2ARGS" 500000
|
||||
CheckBalance "$B3ARGS" 500000
|
||||
CheckBalance "$B4ARGS" 0
|
||||
|
||||
echo "Creating transactions..."
|
||||
|
@ -150,7 +147,7 @@ echo "Creating transactions..."
|
|||
function S {
|
||||
TXID=$( $CLI -datadir=${D}/node${1} sendtoaddress ${2} "${3}" 0 )
|
||||
if [[ $TXID == "" ]] ; then
|
||||
echoerr "node${1}: error sending ${3} btc"
|
||||
echoerr "node${1}: error sending ${3} doge"
|
||||
echo -n "node${1} balance: "
|
||||
$CLI -datadir=${D}/node${1} getbalance "*" 0
|
||||
exit 1
|
||||
|
@ -204,9 +201,9 @@ for i in {1..5}; do OneRound ; done
|
|||
|
||||
WaitMemPools
|
||||
|
||||
# Generate 101 more blocks, so any fees paid
|
||||
# Generate 50 more blocks, so any fees paid
|
||||
# mature
|
||||
$CLI "$B4ARGS" setgenerate true 101
|
||||
$CLI "$B4ARGS" setgenerate true 50
|
||||
|
||||
BALANCE1=$( $CLI "$B1ARGS" getbalance )
|
||||
BALANCE2=$( $CLI "$B2ARGS" getbalance )
|
||||
|
@ -215,7 +212,8 @@ BALANCE4=$( $CLI "$B4ARGS" getbalance )
|
|||
|
||||
TOTAL=$( dc -e "$BALANCE1 $BALANCE2 $BALANCE3 $BALANCE4 + + + p" )
|
||||
|
||||
AssertEqual $TOTAL 5700.00000000
|
||||
#500000 * (3 + 49 + 5 + 5 + 1 (+49 unmature))
|
||||
AssertEqual $TOTAL 31500000.00000000
|
||||
|
||||
function StopThree {
|
||||
$CLI $B1ARGS stop > /dev/null 2>&1
|
||||
|
|
Loading…
Reference in a new issue