Commit graph

699 commits

Author SHA1 Message Date
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
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