Commit Graph

825 Commits

Author SHA1 Message Date
John Newbery 7b5e3fe0cc Add assumevalid testcase
Adds a qa testcase testing the new "-assumevalid" option. The testcase builds
a chain that includes and invalid signature for one of the transactions and
sends that chain to three nodes:

 - node0 has no -assumevalid parameter and rejects the invalid chain.
 - node1 has -assumevalid set and accepts the invalid chain.
 - node2 has -assumevalid set but the invalid block is not buried deep
   enough to assume invalid, and so rejects the invalid chain.
2017-01-14 22:17:23 +00:00
Pieter Wuille 3908fc4728
Merge #9375: Relay compact block messages prior to full block connection
02ee4eb Make most_recent_compact_block a pointer to a const (Matt Corallo)
73666ad Add comment to describe callers to ActivateBestChain (Matt Corallo)
962f7f0 Call ActivateBestChain without cs_main/with most_recent_block (Matt Corallo)
0df777d Use a temp pindex to avoid a const_cast in ProcessNewBlockHeaders (Matt Corallo)
c1ae4fc Avoid holding cs_most_recent_block while calling ReadBlockFromDisk (Matt Corallo)
9eb67f5 Ensure we meet the BIP 152 old-relay-types response requirements (Matt Corallo)
5749a85 Cache most-recently-connected compact block (Matt Corallo)
9eaec08 Cache most-recently-announced block's shared_ptr (Matt Corallo)
c802092 Relay compact block messages prior to full block connection (Matt Corallo)
6987219 Add a CValidationInterface::NewPoWValidBlock callback (Matt Corallo)
180586f Call AcceptBlock with the block's shared_ptr instead of CBlock& (Matt Corallo)
8baaba6 [qa] Avoid race in preciousblock test. (Matt Corallo)
9a0b2f4 [qa] Make compact blocks test construction using fetch methods (Matt Corallo)
8017547 Make CBlockIndex*es in net_processing const (Matt Corallo)
2017-01-13 14:52:26 -08:00
practicalswift 95bab821b3 Remove unused Python imports 2017-01-13 19:03:20 +01:00
practicalswift ac4a095306 Remove unused Python variables 2017-01-13 18:55:03 +01:00
Wladimir J. van der Laan 7cb024eba6
Merge #9222: Add 'subtractFeeFromAmount' option to 'fundrawtransaction'.
453bda6 Add 'subtractFeeFromOutputs' option to 'fundrawtransaction'. (Chris Moore)
2017-01-12 12:49:10 +01:00
Russell Yanofsky 918d1fb86b Return height of last block pruned by pruneblockchain RPC
Change suggested by Jonas Schnelli <dev@jonasschnelli.ch> in
https://github.com/bitcoin/bitcoin/pull/7871#discussion_r95577623
2017-01-11 14:25:32 -05:00
Russell Yanofsky afffeea7d9 fixup! Add pruneblockchain RPC to enable manual block file pruning.
Extend pruneblockchain RPC to accept block timestamps as well as block indices.
2017-01-10 08:14:50 -05:00
mrbandrews 1fc4ec7bf2 Add pruneblockchain RPC to enable manual block file pruning. 2017-01-10 08:14:50 -05:00
John Newbery 4e7e2e16e4 Update RPC argument names 2017-01-10 12:04:54 +01:00
Wladimir J. van der Laan 2ca9dcd5b9 test: Add test for RPC named arguments
Add RPC testcase for RPC named arguments.
2017-01-05 11:30:20 +01:00
Wladimir J. van der Laan 5865d41f88 authproxy: Add support for RPC named arguments 2017-01-05 11:30:20 +01:00
Matt Corallo 8baaba653e [qa] Avoid race in preciousblock test.
If node 0 is sufficiently fast to announce its block to node 1,
node 1 might already have the block by the time the
node_sync_via_rpc loop gets around to node 1, resulting in the
submitblock result "duplicate-inconclusive" as node 1 has the block,
but prefers an alternate chain.
2017-01-04 15:56:08 -05:00
Matt Corallo 9a0b2f4c5b [qa] Make compact blocks test construction using fetch methods 2017-01-04 15:56:08 -05:00
Alex Morcos ffeb1956cb add test for -walletrejectlongchains 2017-01-04 13:26:44 -05:00
isle2983 27765b6403 Increment MIT Licence copyright header year on files modified in 2016
Edited via:

$ contrib/devtools/copyright_header.py update .
2016-12-31 11:01:21 -07:00
Wladimir J. van der Laan 5a70572049
Merge #9262: Prefer coins that have fewer ancestors, sanity check txn before ATMP
cee1612 reduce number of lookups in TransactionWithinChainLimit (Gregory Sanders)
af9bedb Test for fix of txn chaining in wallet (Gregory Sanders)
5882c09 CreateTransaction: Don't return success with too-many-ancestor txn (Gregory Sanders)
0b2294a SelectCoinsMinConf: Prefer coins with fewer ancestors (Gregory Sanders)
2016-12-20 13:27:08 +01:00
Wladimir J. van der Laan a7f76512d9
Merge #9352: Attempt reconstruction from all compact block announcements
813ede9 [qa] Update compactblocks test for multi-peer reconstruction (Suhas Daftuar)
7017298 Allow compactblock reconstruction when block is in flight (Suhas Daftuar)
2016-12-19 08:52:42 +01:00
Wladimir J. van der Laan c9e00591cd
Merge #9322: [qa] Don't set unknown rpcserialversion
fa615d3 [qa] Don't set unknown rpcserialversion (MarcoFalke)
80d073c Complain when unknown rpcserialversion is specified (Pieter Wuille)
2016-12-15 20:10:36 +01:00
Suhas Daftuar 813ede91e1 [qa] Update compactblocks test for multi-peer reconstruction 2016-12-15 11:47:04 -05:00
Wladimir J. van der Laan c6fd923886
Merge #9331: [qa] Add test for rescan feature of wallet key import RPCs
d8c0b9f [qa] Add test for rescan feature of wallet key import RPCs (Russell Yanofsky)
2016-12-15 17:06:53 +01:00
Wladimir J. van der Laan 1eef038b1b
Merge #7562: Bump transaction version default to 2
c5c92c4 Update python tests for default tx version=2 (BtcDrak)
dab207e Preserve tx version=1 for certain tests (BtcDrak)
c5d746a tiny test fix for mempool_tests (Alex Morcos)
1f0ca1a Bump default transaction version to 2 (BtcDrak)
2016-12-15 17:03:31 +01:00
Chris Moore 453bda63dd Add 'subtractFeeFromOutputs' option to 'fundrawtransaction'. 2016-12-13 13:36:23 -08:00
Gregory Sanders af9bedbff6 Test for fix of txn chaining in wallet 2016-12-13 09:41:07 -05:00
Russell Yanofsky d8c0b9f525 [qa] Add test for rescan feature of wallet key import RPCs
Covers importaddress, importpubkey, importprivkey, and importmulti RPCs.
2016-12-12 10:18:11 -05:00
MarcoFalke fa615d39b5 [qa] Don't set unknown rpcserialversion 2016-12-11 14:18:07 +01:00
MarcoFalke 76fcd9d503
Merge #9309: [qa] Wallet needs to stay unlocked for whole test
9359f8a Wallet needs to stay unlocked for whole test (Alex Morcos)
2016-12-10 18:47:36 +01:00
Pieter Wuille 815640ec6a
Merge #9295: [Wallet] Bugfix: Fundrawtransaction: don't terminate when keypool is empty
1a6eacb [QA] add fundrawtransaction test on a locked wallet with empty keypool (Jonas Schnelli)
c24a4f5 [Wallet] Bugfix: FRT: don't terminate when keypool is empty (Jonas Schnelli)
2016-12-09 16:14:54 -08:00
Alex Morcos 9359f8ad3b Wallet needs to stay unlocked for whole test 2016-12-09 11:42:23 -05:00
BtcDrak c5c92c46fb
Update python tests for default tx version=2 2016-12-08 20:12:00 +00:00
Wladimir J. van der Laan ea33f197ef
Merge #9276: Some minor testing cleanups
30b620c remove obsolete run-bitcoind-for-test.sh (Alex Morcos)
2a99522 remove relaypriority from rpc tests (Alex Morcos)
e2184cc Reorder RPC tests for running time (Alex Morcos)
2016-12-08 07:50:56 +01:00
Jonas Schnelli 1a6eacbf3b
[QA] add fundrawtransaction test on a locked wallet with empty keypool 2016-12-07 15:20:40 +01:00
MarcoFalke 919db037f1
Merge #9274: [qa] Use cached utxo set to fix performance regression
fab1af3 [qa] maxuploadtarget: Use cached utxo set (MarcoFalke)
fa2ecc4 [qa] pruning: Use cached utxo set to run faster (MarcoFalke)
2016-12-06 12:08:27 +01:00
Gregory Sanders bc7ff8db99 Add option to return non-segwit serialization via rpc 2016-12-05 07:43:22 -05:00
MarcoFalke fab1af31d4 [qa] maxuploadtarget: Use cached utxo set 2016-12-05 00:31:10 +01:00
Alex Morcos 30b620c48a remove obsolete run-bitcoind-for-test.sh 2016-12-04 15:44:41 -05:00
MarcoFalke fa2ecc48fb [qa] pruning: Use cached utxo set to run faster 2016-12-04 21:30:20 +01:00
Alex Morcos 2a99522bbf remove relaypriority from rpc tests 2016-12-03 18:03:51 -05:00
Alex Morcos e2184ccc1d Reorder RPC tests for running time 2016-12-03 15:46:33 -05:00
MarcoFalke 9e4bb312e6
Merge #9221: [qa] Get rid of duplicate code
facbfa5 [qa] Get rid of duplicate code (MarcoFalke)
2016-12-02 20:17:51 +01:00
MarcoFalke facbfa5816 [qa] Get rid of duplicate code 2016-12-02 16:32:00 +01:00
Suhas Daftuar 0828619e96 [qa] Dump debug logs on travis failures. 2016-11-30 11:35:31 -05:00
fsb4000 15fa95d7e5 Fix some typos 2016-11-28 16:16:37 +07:00
Wladimir J. van der Laan d932159f34
Merge #9189: Always add default_witness_commitment with GBT client support
95f4a03 [qa] Test getblocktemplate default_witness_commitment (Suhas Daftuar)
ad04d1c Always add default_witness_commitment with GBT client support (Pieter Wuille)
2016-11-25 08:26:25 +01:00
MarcoFalke 0de7fd36de
Merge #9139: Change sync_blocks to pick smarter maxheight (on top of #9196)
1126c85 [qa] Change sync_blocks to pick smarter maxheight (Russell Yanofsky)
2016-11-23 13:01:53 +01:00
MarcoFalke e662d281b8
Merge #9206: Make test constant consistent with consensus.h
09dc406 Make test constant consistent with consensus.h (BtcDrak)
2016-11-23 11:40:25 +01:00
Wladimir J. van der Laan 4d8558a287
Merge #9025: getrawtransaction should take a bool for verbose
240189b add testcases for getrawtransaction (John Newbery)
ce2bb23 getrawtransaction should take a bool for verbose (jnewbery)
2016-11-23 07:13:46 +01:00
John Newbery 240189b2c1 add testcases for getrawtransaction 2016-11-22 14:37:59 +00:00
Suhas Daftuar 95f4a03777 [qa] Test getblocktemplate default_witness_commitment 2016-11-21 15:01:05 -08:00
BtcDrak 09dc4064ac Make test constant consistent with consensus.h 2016-11-21 21:30:53 +00:00
Wladimir J. van der Laan 0c577f2638
Merge #8872: Remove block-request logic from INV message processing
037159c Remove block-request logic from INV message processing (Matt Corallo)
3451203 [qa] Respond to getheaders and do not assume a getdata on inv (Matt Corallo)
d768f15 [qa] Make comptool push blocks instead of relying on inv-fetch (mrbandrews)
2016-11-21 15:41:32 +01:00
MarcoFalke 44adf683ad
Merge #9159: [qa] Wait for specific block announcement in p2p-compactblocks
dfa44d1 [qa] Wait for specific block announcement in p2p-compactblocks (Russell Yanofsky)
2016-11-19 23:33:29 +01:00
MarcoFalke 0a6d48d9ed
Merge #9168: [qa] add assert_raises_message to check specific error message
307acdd [qa] add assert_raises_message to check specific error message (mrbandrews)
2016-11-16 10:51:25 +01:00
Wladimir J. van der Laan 4333b1c4ea
Merge #9151: [qa] proxy_test: Calculate hardcoded port numbers
fa80ef8 [qa] proxy_test: Calculate hardcoded port numbers instead (MarcoFalke)
2016-11-16 10:04:18 +01:00
mrbandrews 307acdd3df [qa] add assert_raises_message to check specific error message 2016-11-15 15:37:46 -05:00
Russell Yanofsky dfa44d1b07 [qa] Wait for specific block announcement in p2p-compactblocks
Change check_announcement_of_new_block() to wait specifically for the
announcement of the newly created block, instead of waiting for any
announcement at all. A difficult to reproduce failure in
check_announcement_of_new_block() that happened in a travis build
(https://travis-ci.org/bitcoin/bitcoin/jobs/175198367) might have happened
because an older announcement was mistaken for the expected one. The error
looked like:

  Assertion failed: Failed

  File ".../bitcoin/qa/rpc-tests/test_framework/test_framework.py", line 145, in main
    self.run_test()
  File ".../bitcoin/build/../qa/rpc-tests/p2p-compactblocks.py", line 787, in run_test
    self.test_sendcmpct(self.nodes[1], self.segwit_node, 2, old_node=self.old_node)
  File ".../bitcoin/build/../qa/rpc-tests/p2p-compactblocks.py", line 201, in test_sendcmpct
    check_announcement_of_new_block(node, test_node, lambda p: p.last_cmpctblock is None and p.last_inv is not None)
  File ".../bitcoin/build/../qa/rpc-tests/p2p-compactblocks.py", line 194, in check_announcement_of_new_block
    assert(predicate(peer))

This commit also changes the assertion failed message above to include more
detailed information for debug.
2016-11-14 13:59:20 -05:00
Russell Yanofsky 7943b13ab3 [qa] Avoid 2 list comprehensions in sync_blocks 2016-11-14 12:02:33 -05:00
Russell Yanofsky 05e57ccd74 [qa] Fix sync_blocks timeout argument
Motivation for this change is mainly to make sync_blocks behavior easier to
understand. Behavior is unchanged in the normal case when there are only 2
nodes in the rpc_connections set. When there are more than 2 nodes, the
previous "timeout -= wait" statement wouldn't take into account time spent
waiting for all nodes and as a result could lead to blocking for longer than
the requested timeout.
2016-11-14 12:02:31 -05:00
Russell Yanofsky fd6bb700b7 [qa] Improve sync_blocks error messages. 2016-11-14 12:01:51 -05:00
MarcoFalke fa80ef8173 [qa] proxy_test: Calculate hardcoded port numbers instead 2016-11-13 22:32:23 +01:00
Russell Yanofsky 1126c853d9 [qa] Change sync_blocks to pick smarter maxheight
Instead of syncing to max height returned by the waitforblockheight RPC, sync
to the max height returned by the getblockcount RPC.

This change was suggested by Suhas Daftuar <sdaftuar@chaincode.com>.
2016-11-11 15:46:14 -05:00
Wladimir J. van der Laan 7977a1157a
Merge #9058: Fixes for p2p-compactblocks.py test timeouts on travis (#8842)
dac53b5 Modify getblocktxn handler not to drop requests for old blocks (Russell Yanofsky)
55bfddc [qa] Fix stale data bug in test_compactblocks_not_at_tip (Russell Yanofsky)
47e9659 [qa] Fix bug in compactblocks v2 merge (Russell Yanofsky)
2016-11-11 11:02:44 +01:00
MarcoFalke e5364991da
Merge #9097: [qa] Rework sync_* and preciousblock.py
fa97ccb [qa] util: Rework sync_*() (MarcoFalke)
fac1141 [qa] preciousblock: Use assert_equal and BitcoinTestFramework.__init__ (MarcoFalke)
2016-11-10 11:23:40 +01:00
Wladimir J. van der Laan faec09bc7f
Merge #8894: [Testing] Include fRelay in mininode version messages
e5d682f Fix mininode version message format (jnewbery)
2016-11-09 22:06:57 +01:00
jnewbery e5d682faa3 Fix mininode version message format 2016-11-09 02:34:30 +00:00
Wladimir J. van der Laan 71ab476b04
Merge #9098: [qa] Handle zombies and cluttered tmpdirs
fab0f07 [qa] rpc-tests: Apply random offset to portseed (MarcoFalke)
fae19aa [qa] test_framework: Exit when tmpdir exists (MarcoFalke)
2016-11-08 10:55:45 +01:00
MarcoFalke fab0f07dec [qa] rpc-tests: Apply random offset to portseed
This helps to skip over resources, which are blocked by regtest bitcoind
zombie nodes
2016-11-08 10:50:31 +01:00
Pieter Wuille dc6b9406bd
Merge #9026: Fix handling of invalid compact blocks
d4833ff Bump the protocol version to distinguish new banning behavior. (Suhas Daftuar)
88c3549 Fix compact block handling to not ban if block is invalid (Suhas Daftuar)
c93beac [qa] Test that invalid compactblocks don't result in ban (Suhas Daftuar)
2016-11-07 18:11:18 -08:00
Matt Corallo 3451203b5c [qa] Respond to getheaders and do not assume a getdata on inv 2016-11-07 17:38:22 -05:00
mrbandrews d768f151f6 [qa] Make comptool push blocks instead of relying on inv-fetch 2016-11-07 17:38:22 -05:00
MarcoFalke fae19aa1da [qa] test_framework: Exit when tmpdir exists 2016-11-07 22:55:27 +01:00
MarcoFalke fa97ccb06d [qa] util: Rework sync_*()
* Only allow named args in sync_*()
* Make sync_* fails more verbose
* Add timeout to sync_chain()
2016-11-07 20:42:21 +01:00
Russell Yanofsky dac53b58b5 Modify getblocktxn handler not to drop requests for old blocks
The current getblocktxn implementation drops and ignores requests for old
blocks, which causes occasional sync_block timeouts during the
p2p-compactblocks.py test as reported in
https://github.com/bitcoin/bitcoin/issues/8842.

The p2p-compactblocks.py test setup creates many new blocks in a short
period of time, which can lead to getblocktxn requests for blocks below the
hardcoded depth limit of 10 blocks. This commit changes the getblocktxn
handler not to ignore these requests, so the peer nodes in the test setup
will reliably be able to sync.

The protocol change is documented in BIP-152 update "Allow block responses
to getblocktxn requests" at https://github.com/bitcoin/bips/pull/469.

The protocol change is not expected to affect nodes running outside the test
environment, because there shouldn't normally be lots of new blocks being
rapidly added that need to be synced.
2016-11-07 14:35:11 -05:00
MarcoFalke fac1141600 [qa] preciousblock: Use assert_equal and BitcoinTestFramework.__init__ 2016-11-07 19:23:33 +01:00
MarcoFalke 1253f8692f
Merge #9077: [qa] Increase wallet-dump RPC timeout
e89614b [qa] Add more helpful RPC timeout message (Russell Yanofsky)
8463aaa [qa] Increase wallet-dump RPC timeout (Russell Yanofsky)
2016-11-07 18:31:36 +01:00
Russell Yanofsky e89614b6ab [qa] Add more helpful RPC timeout message
Replace previous timeout('timed out',) exception with more detailed error.
2016-11-07 12:04:19 -05:00
Russell Yanofsky 8463aaa63c [qa] Increase wallet-dump RPC timeout
Increase wallet-dump RPC timeout from 30 seconds to 1 minute. This avoids a
timeout error that seemed to happen regularly (around 50% of builds) on a
particular jenkins server during the first getnewaddress RPC call made by the
test.

The failing stack trace looked like:

    Unexpected exception caught during testing: timeout('timed out',)

    File ".../bitcoin/qa/rpc-tests/test_framework/test_framework.py", line 146, in main
      self.run_test()
    File ".../bitcoin/qa/rpc-tests/wallet-dump.py", line 73, in run_test
      addr = self.nodes[0].getnewaddress()
    File ".../bitcoin/qa/rpc-tests/test_framework/coverage.py", line 49, in __call__
      return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
    File ".../bitcoin/qa/rpc-tests/test_framework/authproxy.py", line 145, in __call__
      response = self._request('POST', self.__url.path, postdata.encode('utf-8'))
    File ".../bitcoin/qa/rpc-tests/test_framework/authproxy.py", line 121, in _request
      return self._get_response()
    File ".../bitcoin/qa/rpc-tests/test_framework/authproxy.py", line 160, in _get_response
      http_response = self.__conn.getresponse()
    File "/usr/lib/python3.4/http/client.py", line 1171, in getresponse
      response.begin()
    File "/usr/lib/python3.4/http/client.py", line 351, in begin
      version, status, reason = self._read_status()
    File "/usr/lib/python3.4/http/client.py", line 313, in _read_status
      line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
    File "/usr/lib/python3.4/socket.py", line 374, in readinto
      return self._sock.recv_into(b)
2016-11-07 12:04:01 -05:00
isle2983 4b04e32c20 [copyright] copyright header style uniform
Three categories of modifications:

1)

1 instance of 'The Bitcoin Core developers \n',
1 instance of 'the Bitcoin Core developers\n',
3 instances of 'Bitcoin Core Developers\n', and
12 instances of 'The Bitcoin developers\n'

are made uniform with the 443 instances of 'The Bitcoin Core developers\n'

2)

3 instances of 'BitPay, Inc\.\n' are made uniform with the other 6
instances of 'BitPay Inc\.\n'

3)

4 instances where there was no '(c)' between the 'Copyright' and the year
where it deviates from the style of the local directory.
2016-11-06 10:12:50 -07:00
Suhas Daftuar c93beac43f [qa] Test that invalid compactblocks don't result in ban 2016-11-03 12:26:37 -04:00
Russell Yanofsky 55bfddcabb [qa] Fix stale data bug in test_compactblocks_not_at_tip
Clear test_node.last_block before requesting blocks in the
compactblocks_not_at_tip test so comparisons won't fail if a blocks were received
before the test started.

The bug doesn't currently cause any problems due to the order tests run, but
this will change in the next commit.
2016-11-02 15:35:11 -04:00
Russell Yanofsky 47e9659ecf [qa] Fix bug in compactblocks v2 merge
Bug caused the wait_for_block_announcement to be called on the wrong node,
leading to nondeterminism and occasional test failures. Bug was introduced in
merge commit:

d075479 Merge #8882: [qa] Fix race conditions in p2p-compactblocks.py and sendheaders.py

Underlying commits which conflicted were:

27acfc1 [qa] Update p2p-compactblocks.py for compactblocks v2
6976db2 [qa] Another attempt to fix race condition in p2p-compactblocks.py

The first commit changed the test_compactblock_construction function signature
and second commit added code which wasn't updated during the merge to use the
new arguments.

Suhas Daftuar <sdaftuar@chaincode.com> noticed the bug and suggested the fix.
2016-11-02 15:35:11 -04:00
Wladimir J. van der Laan f2d705629b
Merge #7551: Add importmulti RPC call
215caba Add consistency check to RPC call importmulti (Pedro Branco)
cb08fdb Add importmulti rpc call (Pedro Branco)
2016-10-20 09:04:32 +02:00
Pedro Branco 215caba4ed Add consistency check to RPC call importmulti 2016-10-19 15:17:42 +01:00
Pedro Branco cb08fdbf78 Add importmulti rpc call 2016-10-19 15:17:13 +01:00
mruddy fc146095d2 RPC: augment getblockchaininfo bip9_softforks data 2016-10-19 09:08:39 -04:00
Wladimir J. van der Laan 7f71a3c591
Merge #6996: Add preciousblock RPC
5805ac8 Add preciousblock tests (Pieter Wuille)
5127c4f Add preciousblock RPC (Pieter Wuille)
2016-10-18 21:36:38 +02:00
Pieter Wuille 3ac6de0a04 Align constant names for maximum compact block / blocktxn depth 2016-10-17 16:46:30 +02:00
Matt Corallo fe998e962d More agressively filter compact block requests
Unit test adaptations by Pieter Wuille.
2016-10-17 16:44:57 +02:00
Wladimir J. van der Laan 53133c1c04
Merge #8499: Add several policy limits and disable uncompressed keys for segwit scripts
67d6ee1 remove redundant tests in p2p-segwit.py (Johnson Lau)
9260085 test segwit uncompressed key fixes (Johnson Lau)
248f3a7 Fix ismine and addwitnessaddress: no uncompressed keys in segwit (Pieter Wuille)
b811124 [qa] Add tests for uncompressed pubkeys in segwit (Suhas Daftuar)
9f0397a Make test framework produce lowS signatures (Johnson Lau)
4c0c25a Require compressed keys in segwit as policy and disable signing with uncompressed keys for segwit scripts (Johnson Lau)
3ade2f6 Add standard limits for P2WSH with tests (Johnson Lau)
2016-10-17 13:27:05 +02:00
Johnson Lau 67d6ee1e36 remove redundant tests in p2p-segwit.py 2016-10-17 03:18:36 +08:00
Johnson Lau 9260085377 test segwit uncompressed key fixes 2016-10-17 00:34:37 +08:00
Suhas Daftuar b811124202 [qa] Add tests for uncompressed pubkeys in segwit 2016-10-16 23:53:35 +08:00
Johnson Lau 9f0397aff7 Make test framework produce lowS signatures 2016-10-16 23:53:35 +08:00
Johnson Lau 3ade2f64cf Add standard limits for P2WSH with tests 2016-10-16 23:53:35 +08:00
Matt Corallo a4ad37d4ef [qa] Build v4 blocks in p2p-compactblocktests
This fixes an issue in backporting to 0.13 as 0.13 enforces SF
activation by block version lockin instead of through a hard-coded
block height.
2016-10-15 17:51:05 -04:00
Matt Corallo 032e883b93 [qa] Send segwit-encoded blocktxn messages in p2p-compactblocks 2016-10-14 12:54:15 -04:00
Wladimir J. van der Laan e2a17e43e3
Merge #8904: [qa] Fix compact block shortids for a test case
4cdece4 [qa] Fix compact block shortids for a test case (Dagur Valberg Johannsson)
2016-10-13 18:48:13 +02:00
MarcoFalke d075479969
Merge #8882: [qa] Fix race conditions in p2p-compactblocks.py and sendheaders.py
b55d941 [qa] Fix race condition in sendheaders.py (Suhas Daftuar)
6976db2 [qa] Another attempt to fix race condition in p2p-compactblocks.py (Suhas Daftuar)
2016-10-11 10:50:22 +02:00
Dagur Valberg Johannsson 4cdece4041 [qa] Fix compact block shortids for a test case 2016-10-10 13:37:16 -04:00
Suhas Daftuar b55d9411e7 [qa] Fix race condition in sendheaders.py
Also de-duplicates code that has been moved to mininode
2016-10-06 14:21:11 -04:00
Suhas Daftuar 6976db2f46 [qa] Another attempt to fix race condition in p2p-compactblocks.py
sync_with_ping() only guarantees that the node has processed messages
it's received from the peer, not that block announcements from the node have
made it back to the peer.  Replace sync_with_ping() with an explicit check that
the node's tip has been announced.
2016-10-04 15:17:19 -04:00
Suhas Daftuar 27acfc1d2e [qa] Update p2p-compactblocks.py for compactblocks v2 2016-10-04 19:10:49 +02:00
Suhas Daftuar 422fac649f [qa] Add support for compactblocks v2 to mininode 2016-10-04 19:10:49 +02:00
Suhas Daftuar f5b9b8f437 [qa] Fix bug in mininode witness deserialization
Also improve tx printing
2016-10-04 19:10:49 +02:00
Matt Corallo be7555f0c0 Fix overly-prescriptive p2p-segwit test for new fetch logic 2016-10-04 18:24:10 +02:00
MarcoFalke 76f3c02fb0
Merge #8860: [qa] util: Move wait_bitcoinds() into stop_nodes()
fa7c35c [qa] util: Move wait_bitcoinds() into stop_nodes() (MarcoFalke)
2016-10-03 10:12:42 +02:00
MarcoFalke fa666094cf [qa] mininode: Only allow named args in wait_until 2016-10-02 12:21:14 +02:00
MarcoFalke fa7c35c4ec [qa] util: Move wait_bitcoinds() into stop_nodes() 2016-10-02 11:16:44 +02:00
MarcoFalke 6faffb8a83
Merge #8854: [qa] Fix race condition in p2p-compactblocks test
b5fd666 [qa] Fix race condition in p2p-compactblocks test (Suhas Daftuar)
2016-10-01 11:19:22 +02:00
Suhas Daftuar b5fd666984 [qa] Fix race condition in p2p-compactblocks test
Also fix a bug in the sync_with_ping() helper function
2016-09-30 20:54:30 -04:00
Wladimir J. van der Laan 0572acd63b
Merge #8839: test: Avoid ConnectionResetErrors during RPC tests
1d28faf test: Avoid ConnectionResetErrors during RPC tests (Wladimir J. van der Laan)
2016-09-30 12:35:21 +02:00
Wladimir J. van der Laan 929860106f
Merge #8840: test: Explicitly set encoding to utf8 when opening text files
30930e8 test: Explicitly set encoding to utf8 when opening text files (Wladimir J. van der Laan)
2016-09-30 12:34:40 +02:00
Wladimir J. van der Laan 83998b52d0
Merge #8841: [qa] fix nulldummy test
46a4774 Fix nulldummy.py test (Johnson Lau)
2016-09-30 12:34:19 +02:00
Johnson Lau 46a4774d2b Fix nulldummy.py test 2016-09-30 02:48:09 +08:00
Wladimir J. van der Laan 30930e847e test: Explicitly set encoding to utf8 when opening text files
These are text files but their encoding does not depend on the locale.
Not all of them require utf8 but it is better to fix it at something
to remove potential unpredictability.

This is necessary on FreeBSD where no locale is set by default,
and apparently Python defaults not only the terminal encoding to the locale
but that of every text file. So without LOCALE environment it defaults text
file encoding to ASCII. This causes problems with e.g. `bitcoin.conf`.

Luckily the locale doesn't affect the default encoding for str.encode() and
bytes.decode() on Python 3, so this is the only change necessary.
2016-09-29 17:50:05 +02:00
Wladimir J. van der Laan c9d7b0de2f
Merge #8834: [qa] blockstore: Switch to dumb dbm
fa9cd25 [qa] blockstore: Switch to dumb dbm (MarcoFalke)
2016-09-29 17:23:27 +02:00
Wladimir J. van der Laan 1d28faf9e9 test: Avoid ConnectionResetErrors during RPC tests
This is necessary on FreeBSD and MacOSX, at least.

See https://github.com/bitcoin/bitcoin/pull/8834#issuecomment-250450213
2016-09-29 15:02:08 +00:00
Wladimir J. van der Laan 2dd57e4f9f
Merge #8835: [qa] nulldummy.py: Don't run unused code
fa156c6 [qa] nulldummy: Don't run unused code (MarcoFalke)
2016-09-29 16:45:54 +02:00
MarcoFalke fa156c604e [qa] nulldummy: Don't run unused code 2016-09-29 15:32:16 +02:00
MarcoFalke cc9e8aca5f
Merge #8827: [qa] Split up slow RPC calls to avoid pruning test timeouts
a0f8482 [qa] Split up slow RPC calls to avoid pruning test timeouts (Suhas Daftuar)
2016-09-29 13:09:38 +02:00
MarcoFalke fa9cd25ed0 [qa] blockstore: Switch to dumb dbm 2016-09-29 11:18:31 +02:00
Suhas Daftuar a0f8482f3e [qa] Split up slow RPC calls to avoid pruning test timeouts 2016-09-28 11:08:08 -04:00
Wladimir J. van der Laan 14e8f9916b
Merge #8810: tests: Add exception error message for JSONRPCException
42f6aed tests: Add exception error message for JSONRPCException (Wladimir J. van der Laan)
2016-09-27 15:20:30 +02:00
Wladimir J. van der Laan 6e54c85439
Merge #8803: Ping regularly in p2p-segwit.py to keep connection alive
0637b02 Ping regularly in p2p-segwit.py to keep connection alive (Johnson Lau)
2016-09-27 13:22:02 +02:00
Wladimir J. van der Laan dd20ed1223
Merge #8780: [rpc] Deprecate getinfo
fa6e71b [qa] Add getinfo smoke tests and rework versionbits test (MarcoFalke)
ddddaaf [rpc] Deprecate getinfo (MarcoFalke)
2016-09-26 15:03:06 +02:00
Wladimir J. van der Laan 42f6aed731 tests: Add exception error message for JSONRPCException
This improves error reporting if `JSONRPCException` is not specifically caught
and ends up in Python's default backtrace handler.

Before:
```
Traceback (most recent call last):
  File "/.../projects/bitcoin/bitcoin/qa/rpc-tests/test_framework/authproxy.py", line 153, in __call__
    raise JSONRPCException(response['error'])
test_framework.authproxy.JSONRPCException
```

After:
```
Traceback (most recent call last):
  File "/.../projects/bitcoin/bitcoin/qa/rpc-tests/test_framework/authproxy.py", line 152, in __call__
    raise JSONRPCException(response['error'])
test_framework.authproxy.JSONRPCException: Unknown named parameter random (-8)
```
2016-09-25 20:05:03 +02:00
Johnson Lau 0637b02fce Ping regularly in p2p-segwit.py to keep connection alive
This pings regularly while building a big block in p2p-segwit.py, to prevent timeout
2016-09-25 23:44:40 +08:00
MarcoFalke fa6e71b27d [qa] Add getinfo smoke tests and rework versionbits test 2016-09-25 15:01:29 +02:00
MarcoFalke e31a43c725
Merge #8789: [qa] pull-tester: Only print output when failed
fa427ce [qa] pull-tester: Only print output when failed (MarcoFalke)
2016-09-24 15:35:35 +02:00
MarcoFalke fa427cef13 [qa] pull-tester: Only print output when failed 2016-09-22 12:39:39 +02:00
Wladimir J. van der Laan 26b370a937
Merge #8636: Implement NULLDUMMY softfork (BIP147)
482f852 Implement NULLDUMMY softfork (Johnson Lau)
2016-09-22 10:58:00 +02:00
MarcoFalke ddddaafa4a [rpc] Deprecate getinfo
This was replaced by getmininginfo, getnetworkinfo and getwalletinfo
2016-09-21 21:19:20 +02:00
Wladimir J. van der Laan 1c24d5f637
Merge #8739: [qa] Fix broken sendcmpct test in p2p-compactblocks.py
157254a Fix broken sendcmpct test in p2p-compactblocks.py (Suhas Daftuar)
2016-09-20 16:22:21 +02:00
Wladimir J. van der Laan d8b4b631c5
Merge #8676: Add missing copyright headers
783e930 [copyright] Add missing copyright headers (isle2983)
2016-09-19 19:13:48 +02:00
Wladimir J. van der Laan c40dd70d0d
Merge #8750: [qa] Refactor RPCTestHandler to prevent TimeoutExpired
dddd04f [qa] Refactor RPCTestHandler to prevent TimeoutExpired (MarcoFalke)
2016-09-19 16:51:47 +02:00
Wladimir J. van der Laan 9ac01301f5
Merge #8716: [qa] wallet: Check legacy wallet as well
fa644d0 [qa] wallet: Check legacy wallet as well (MarcoFalke)
2016-09-19 15:44:41 +02:00
MarcoFalke 483e8e4f48
Merge #8724: [qa] walletbackup: Sync blocks inside the loop
fad41f3 [qa] walletbackup: Sync blocks inside the loop (MarcoFalke)
2016-09-19 09:41:36 +02:00
MarcoFalke dddd04f979 [qa] Refactor RPCTestHandler to prevent TimeoutExpired 2016-09-17 11:49:43 +02:00
Suhas Daftuar 157254a4bf Fix broken sendcmpct test in p2p-compactblocks.py
Python lambda use was incorrect.

sendcmpct messages need to be synchronized with RPC calls to generate().

Headers need to be synced (eg with getheaders) for cmpctblock announcements
to start.

Last test omitted sending a sendcmpct message.
2016-09-15 12:32:53 -04:00
MarcoFalke fad41f308f [qa] walletbackup: Sync blocks inside the loop 2016-09-14 16:29:18 +02:00
MarcoFalke fa644d0053 [qa] wallet: Check legacy wallet as well 2016-09-14 12:15:30 +02:00
MarcoFalke fa27d990ee [qa] create_cache: Delete temp dir when done 2016-09-13 19:34:11 +02:00
MarcoFalke 7fe6c5c993
Merge #8652: [qa]: remove root test directory for RPC tests
c62cc4e fix path for bak file (whythat)
438e94d remove root test directory for RPC tests (whythat)
2016-09-13 12:00:15 +02:00
Wladimir J. van der Laan 4ced5de71d
Merge #8528: Update p2p-segwit.py to reflect correct behavior
5547aeb p2psegwit.py transaction is rejected due to premature witness not size (instagibbs)
bc1d1f2 Update p2p-segwit.py to reflect correct AskFor behavior (instagibbs)
2016-09-13 11:03:06 +02:00
isle2983 783e930e68 [copyright] Add missing copyright headers 2016-09-11 15:25:51 -06:00
MarcoFalke 2a0836f6d5
Merge #8667: Fix SIGHASH_SINGLE bug in test_framework SignatureHash
2f2548d Fix SIGHASH_SINGLE bug in test_framework SignatureHash (Johnson Lau)
2016-09-09 23:20:21 +02:00
Wladimir J. van der Laan 666eaf03cf
Merge #8680: Address Travis spurious failures
d6a5dc4 add waitfornewblock/waitforblock/waitforblockheight rpcs and use them for tests (Cory Fields)
2016-09-09 08:33:54 +02:00
Cory Fields d6a5dc4a2e add waitfornewblock/waitforblock/waitforblockheight rpcs and use them for tests
waitfornewblock waits until a new block is received, or the timeout expires, then
returns the current block height/hash.

waitforblock waits for a specific blockhash, or until the timeout expires, then
returns the current block height/hash. If the target blockhash is the current
tip, it will return immediately.

waitforblockheight waits until the tip has reached a certain height or higher,
then returns the current height and hash.

waitforblockheight is used to avoid polling in the rpc tests.
2016-09-07 12:46:01 -04:00
Johnson Lau 2f2548d5e0 Fix SIGHASH_SINGLE bug in test_framework SignatureHash
The value for "other" inputs should be -1 (0xffffffffffffffff) instead of 0
2016-09-06 00:50:23 +08:00
instagibbs ca10a03add Add basic test for IsStandard witness transaction blinding 2016-09-05 17:53:41 +02:00
whythat c62cc4ec75 fix path for bak file 2016-09-05 02:06:49 +03:00