Commit Graph

598 Commits

Author SHA1 Message Date
Pieter Wuille
2cad5db6f7 Align constant names for maximum compact block / blocktxn depth
Github-Pull: #8637
Rebased-From: 3ac6de0a04
2016-11-20 15:08:16 +01:00
Matt Corallo
76ba1c9739 More agressively filter compact block requests
Unit test adaptations by Pieter Wuille.

Github-Pull: #8637
Rebased-From: fe998e962d
2016-11-20 15:07:53 +01:00
Russell Yanofsky
286e548d87 [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.

Github-Pull: #9058
Rebased-From: 55bfddcabb
2016-11-19 23:55:07 +01:00
Russell Yanofsky
2ba5d78427 [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.

Github-Pull: #9058
Rebased-From: 47e9659ecf
2016-11-19 23:53:01 +01:00
Russell Yanofsky
eca9b46537 [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.

Github-Pull: #9159
Rebased-From: dfa44d1b07
2016-11-19 23:34:58 +01:00
Russell Yanofsky
da4926b1d2 [qa] Add more helpful RPC timeout message
Replace previous timeout('timed out',) exception with more detailed error.

Github-Pull: #9077
Rebased-From: e89614b6ab
2016-11-19 23:21:19 +01:00
Russell Yanofsky
1d4c884cd3 [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)

Github-Pull: #9077
Rebased-From: 8463aaa63c
2016-11-19 23:21:07 +01:00
mrbandrews
3107280e14 [qa] add assert_raises_message to check specific error message
Github-Pull: #9168
Rebased-From: 307acdd3df
2016-11-19 23:20:14 +01:00
Suhas Daftuar
82905069bf [qa] Test that invalid compactblocks don't result in ban 2016-10-31 10:05:29 -04:00
Johnson Lau
9777fe1272 remove redundant tests in p2p-segwit.py
Github-Pull: #8499
Rebased-From: 67d6ee1e36
2016-10-17 14:16:08 +02:00
Johnson Lau
fef7b46841 test segwit uncompressed key fixes
Github-Pull: #8499
Rebased-From: 9260085377
2016-10-17 14:16:08 +02:00
Suhas Daftuar
908fced296 [qa] Add tests for uncompressed pubkeys in segwit
Github-Pull: #8499
Rebased-From: b811124202
2016-10-17 14:10:58 +02:00
Johnson Lau
b4b85279a9 Make test framework produce lowS signatures
Github-Pull: #8499
Rebased-From: 9f0397aff7
2016-10-17 14:10:58 +02:00
Johnson Lau
540413d995 Add standard limits for P2WSH with tests
Github-Pull: #8499
Rebased-From: 3ade2f64cf
2016-10-17 14:10:58 +02:00
Matt Corallo
9bb2a02f0d [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.

Github-Pull: #8916
Rebased-From: a4ad37d4ef
2016-10-17 13:15:30 +02:00
Matt Corallo
df5069bb0e [qa] Send segwit-encoded blocktxn messages in p2p-compactblocks
Github-Pull: #8916
Rebased-From: 032e883b93
2016-10-17 13:15:11 +02:00
Dagur Valberg Johannsson
cc6f55191a [qa] Fix compact block shortids for a test case
Github-Pull: #8904
Rebased-From: 4cdece4041
2016-10-13 20:35:33 +02:00
Matt Corallo
890ac25638 Fix overly-prescriptive p2p-segwit test for new fetch logic
Github-Pull: #8393
Rebased-From: be7555f0c0
2016-10-13 20:15:17 +02:00
Suhas Daftuar
611cc5096e [qa] Fix bug in mininode witness deserialization
Also improve tx printing

Github-Pull: #8393
Rebased-From: f5b9b8f437
2016-10-13 20:09:31 +02:00
Suhas Daftuar
61e282b62d [qa] Add support for compactblocks v2 to mininode
Github-Pull: #8393
Rebased-From: 422fac649f
2016-10-13 20:09:31 +02:00
Suhas Daftuar
e47299a8f2 [qa] Update p2p-compactblocks.py for compactblocks v2
Github-Pull: #8393
Rebased-From: 27acfc1d2e
2016-10-13 20:09:31 +02:00
Suhas Daftuar
d6c83b95cf [qa] Fix race condition in sendheaders.py
Also de-duplicates code that has been moved to mininode

Github-Pull: #8882
Rebased-From: b55d9411e7
2016-10-06 21:00:42 +02:00
Suhas Daftuar
b73f0653f3 [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.

Github-Pull: #8882
Rebased-From: 6976db2f46
2016-10-05 11:19:17 +02:00
Wladimir J. van der Laan
cbc3fe59c4 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.

Github-Pull: #8840
Rebased-From: 30930e847e
2016-10-03 11:54:29 +02:00
MarcoFalke
0bee740845 [qa] util: Move wait_bitcoinds() into stop_nodes()
Github-Pull: #8860
Rebased-From: fa7c35c4ec
2016-10-03 11:31:36 +02:00
MarcoFalke
794b007896 [qa] Add getinfo smoke tests and rework versionbits test
Github-Pull: #8780
Rebased-From: fa6e71b27d
2016-10-03 11:31:18 +02:00
MarcoFalke
1f60d45504 [qa] mininode: Only allow named args in wait_until
Github-Pull: #8857
Rebased-From: fa666094cf
2016-10-03 10:59:49 +02:00
Suhas Daftuar
624a007f47 [qa] Fix race condition in p2p-compactblocks test
Also fix a bug in the sync_with_ping() helper function

Github-Pull: #8854
Rebased-From: b5fd666984
2016-10-03 10:57:40 +02:00
Johnson Lau
3e4abb5025 Fix nulldummy.py test
Github-Pull: #8841
Rebased-From: 46a4774d2b
2016-10-03 10:57:22 +02:00
Wladimir J. van der Laan
31ab2f862a 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

Github-Pull: #8839
Rebased-From: 1d28faf9e9
2016-10-03 10:57:04 +02:00
MarcoFalke
d87227d6d2 [qa] nulldummy: Don't run unused code
Github-Pull: #8835
Rebased-From: fa156c604e
2016-10-03 10:56:27 +02:00
MarcoFalke
1dd1783873 [qa] blockstore: Switch to dumb dbm
Github-Pull: #8834
Rebased-From: fa9cd25ed0
2016-10-03 10:56:12 +02:00
Suhas Daftuar
9bbe66e592 [qa] Split up slow RPC calls to avoid pruning test timeouts
Github-Pull: #8827
Rebased-From: a0f8482f3e
2016-10-03 10:54:51 +02:00
Johnson Lau
375437c26b 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

Github-Pull: #8803
Rebased-From: 0637b02fce
2016-10-03 10:54:20 +02:00
Johnson Lau
9dfa0c8d90 Implement NULLDUMMY softfork
Github-Pull: #8636
Rebased-From: 482f852da6
2016-09-26 16:50:39 +02:00
Suhas Daftuar
cef633ce63 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.

Github-Pull: #8739
Rebased-From: 157254a4bf)
2016-09-26 16:49:14 +02:00
Suhas Daftuar
fb8706ebd7 Add p2p test for BIP 152 (compact blocks)
Github-Pull: #8418
Rebased-From: 45c7ddd109
2016-09-26 16:47:11 +02:00
Suhas Daftuar
f6be478b0a Add support for compactblocks to mininode
Github-Pull: #8418
Rebased-From: 9a22a6c089
2016-09-26 16:47:09 +02:00
Suhas Daftuar
4295a7aea5 Tests: refactor compact size serialization in mininode
Github-Pull: #8418
Rebased-From: a8689fdf8e
2016-09-26 16:47:06 +02:00
Pieter Wuille
ff893aa557 Implement SipHash in Python
Github-Pull: #8418
Rebased-From: 9c8593d2b4
2016-09-26 16:46:56 +02:00
instagibbs
b394a96396 Add basic test for IsStandard witness transaction blinding
Github-Pull: #8525
Rebased-From: ca10a03add
2016-09-26 16:42:27 +02:00
isle2983
a60d7cc97d [copyright] Add missing copyright headers
Github-Pull: #8676
Rebased-From: 783e930e68
2016-09-21 02:43:47 +00:00
MarcoFalke
e34374e252 [qa] wallet: Check legacy wallet as well
Github-Pull: #8716
Rebased-From: fa644d0053
2016-09-21 02:43:47 +00:00
MarcoFalke
da94272e3c [qa] walletbackup: Sync blocks inside the loop
Github-Pull: #8724
Rebased-From: fad41f308f
2016-09-21 02:43:47 +00:00
isle2983
0a35573534 [doc] - clarify statement about parallel jobs in rpc-tests.py
Github-Pull: #8625
Rebased-From: 1467561024
2016-09-21 02:43:47 +00:00
MarcoFalke
c18a9ca788 [qa] pull-tester: Don't mute zmq ImportError
Github-Pull: #8607
Rebased-From: fabfd5dae2
2016-09-21 02:43:47 +00:00
MarcoFalke
a27cdd8edf [qa] abandonconflict: Use assert_equal
Github-Pull: #8531
Rebased-From: fa64306520
2016-09-21 02:43:47 +00:00
MarcoFalke
8bb1efd985 [qa] Rework hd wallet dump test
Github-Pull: #8442
Rebased-From: fa4439d355
2016-09-21 02:43:47 +00:00
whythat
bea02dc3b6 [qa]: enable rpcbind_test
Github-Pull: #8400
Rebased-From: 9bbb414b80
2016-09-21 02:43:47 +00:00
whythat
e111904a76 [qa]: add parsing for '<host>:<port>' argument form to rpc_url()
Github-Pull: #8400
Rebased-From: 0ff4375c93
2016-09-21 02:43:47 +00:00