Merge pull request #6417

9da8fc8 [QA] remove rawtransactions.py from the extended test list (Jonas Schnelli)
6ed38b0 [QA] fix possible reorg issue in rawtransaction.py/fundrawtransaction.py RPC test (Jonas Schnelli)
This commit is contained in:
Wladimir J. van der Laan 2015-07-13 08:15:05 +02:00
commit 44fa82d47e
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
3 changed files with 6 additions and 33 deletions

View File

@ -54,7 +54,6 @@ testScriptsExt=(
'smartfees.py' 'smartfees.py'
'maxblocksinflight.py' 'maxblocksinflight.py'
'invalidblockrequest.py' 'invalidblockrequest.py'
'rawtransactions.py'
# 'forknotify.py' # 'forknotify.py'
'p2p-acceptblock.py' 'p2p-acceptblock.py'
); );

View File

@ -30,6 +30,7 @@ class RawTransactionsTest(BitcoinTestFramework):
feeTolerance = Decimal(0.00000002) #if the fee's positive delta is higher than this value tests will fail, neg. delta always fail the tests feeTolerance = Decimal(0.00000002) #if the fee's positive delta is higher than this value tests will fail, neg. delta always fail the tests
self.nodes[2].generate(1) self.nodes[2].generate(1)
self.sync_all()
self.nodes[0].generate(101) self.nodes[0].generate(101)
self.sync_all() self.sync_all()
self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(),1.5); self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(),1.5);
@ -46,17 +47,10 @@ class RawTransactionsTest(BitcoinTestFramework):
outputs = { self.nodes[0].getnewaddress() : 1.0 } outputs = { self.nodes[0].getnewaddress() : 1.0 }
rawtx = self.nodes[2].createrawtransaction(inputs, outputs) rawtx = self.nodes[2].createrawtransaction(inputs, outputs)
dec_tx = self.nodes[2].decoderawtransaction(rawtx) dec_tx = self.nodes[2].decoderawtransaction(rawtx)
rawtxfund = self.nodes[2].fundrawtransaction(rawtx) rawtxfund = self.nodes[2].fundrawtransaction(rawtx)
fee = rawtxfund['fee'] fee = rawtxfund['fee']
dec_tx = self.nodes[2].decoderawtransaction(rawtxfund['hex']) dec_tx = self.nodes[2].decoderawtransaction(rawtxfund['hex'])
totalOut = 0 assert_equal(len(dec_tx['vin']) > 0, True) #test if we have enought inputs
for out in dec_tx['vout']:
totalOut += out['value']
assert_equal(len(dec_tx['vin']), 1) #one vin coin
assert_equal(dec_tx['vin'][0]['scriptSig']['hex'], '')
assert_equal(fee + totalOut, 1.5) #the 1.5BTC coin must be taken
############################## ##############################
# simple test with two coins # # simple test with two coins #
@ -69,14 +63,7 @@ class RawTransactionsTest(BitcoinTestFramework):
rawtxfund = self.nodes[2].fundrawtransaction(rawtx) rawtxfund = self.nodes[2].fundrawtransaction(rawtx)
fee = rawtxfund['fee'] fee = rawtxfund['fee']
dec_tx = self.nodes[2].decoderawtransaction(rawtxfund['hex']) dec_tx = self.nodes[2].decoderawtransaction(rawtxfund['hex'])
totalOut = 0 assert_equal(len(dec_tx['vin']) > 0, True) #test if we have enough inputs
for out in dec_tx['vout']:
totalOut += out['value']
assert_equal(len(dec_tx['vin']), 2) #one vin coin
assert_equal(dec_tx['vin'][0]['scriptSig']['hex'], '')
assert_equal(dec_tx['vin'][1]['scriptSig']['hex'], '')
assert_equal(fee + totalOut, 2.5) #the 1.5BTC+1.0BTC coins must have be taken
############################## ##############################
# simple test with two coins # # simple test with two coins #
@ -89,13 +76,8 @@ class RawTransactionsTest(BitcoinTestFramework):
rawtxfund = self.nodes[2].fundrawtransaction(rawtx) rawtxfund = self.nodes[2].fundrawtransaction(rawtx)
fee = rawtxfund['fee'] fee = rawtxfund['fee']
dec_tx = self.nodes[2].decoderawtransaction(rawtxfund['hex']) dec_tx = self.nodes[2].decoderawtransaction(rawtxfund['hex'])
totalOut = 0 assert_equal(len(dec_tx['vin']) > 0, True)
for out in dec_tx['vout']:
totalOut += out['value']
assert_equal(len(dec_tx['vin']), 1) #one vin coin
assert_equal(dec_tx['vin'][0]['scriptSig']['hex'], '') assert_equal(dec_tx['vin'][0]['scriptSig']['hex'], '')
assert_equal(fee + totalOut, 5.0) #the 5.0BTC coin must have be taken
################################ ################################
@ -113,11 +95,8 @@ class RawTransactionsTest(BitcoinTestFramework):
for out in dec_tx['vout']: for out in dec_tx['vout']:
totalOut += out['value'] totalOut += out['value']
assert_equal(len(dec_tx['vin']), 2) #one vin coin assert_equal(len(dec_tx['vin']) > 0, True)
assert_equal(dec_tx['vin'][0]['scriptSig']['hex'], '') assert_equal(dec_tx['vin'][0]['scriptSig']['hex'], '')
assert_equal(dec_tx['vin'][1]['scriptSig']['hex'], '')
assert_equal(fee + totalOut, 6.0) #the 5.0BTC + 1.0BTC coins must have be taken
######################################################################### #########################################################################
@ -220,8 +199,6 @@ class RawTransactionsTest(BitcoinTestFramework):
assert_equal(matchingOuts, 1) assert_equal(matchingOuts, 1)
assert_equal(len(dec_tx['vout']), 2) assert_equal(len(dec_tx['vout']), 2)
assert_equal(fee + totalOut, 2.5) #this tx must use the 1.0BTC and the 1.5BTC coin
########################################### ###########################################
# test a fundrawtransaction with two VINs # # test a fundrawtransaction with two VINs #
@ -264,8 +241,6 @@ class RawTransactionsTest(BitcoinTestFramework):
matchingIns+=1 matchingIns+=1
assert_equal(matchingIns, 2) #we now must see two vins identical to vins given as params assert_equal(matchingIns, 2) #we now must see two vins identical to vins given as params
assert_equal(fee + totalOut, 7.5) #this tx must use the 1.0BTC and the 1.5BTC coin
######################################################### #########################################################
# test a fundrawtransaction with two VINs and two vOUTs # # test a fundrawtransaction with two VINs and two vOUTs #
@ -300,8 +275,6 @@ class RawTransactionsTest(BitcoinTestFramework):
assert_equal(matchingOuts, 2) assert_equal(matchingOuts, 2)
assert_equal(len(dec_tx['vout']), 3) assert_equal(len(dec_tx['vout']), 3)
assert_equal(fee + totalOut, 7.5) #this tx must use the 1.0BTC and the 1.5BTC coin
############################################## ##############################################
# test a fundrawtransaction with invalid vin # # test a fundrawtransaction with invalid vin #

View File

@ -40,6 +40,7 @@ class RawTransactionsTest(BitcoinTestFramework):
#prepare some coins for multiple *rawtransaction commands #prepare some coins for multiple *rawtransaction commands
self.nodes[2].generate(1) self.nodes[2].generate(1)
self.sync_all()
self.nodes[0].generate(101) self.nodes[0].generate(101)
self.sync_all() self.sync_all()
self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(),1.5); self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(),1.5);