Commit graph

697 commits

Author SHA1 Message Date
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
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 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
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
whythat 438e94dc33 remove root test directory for RPC tests 2016-09-05 02:00:43 +03:00
djpnewton f012a857f5 rest.cpp: change HTTP_INTERNAL_SERVER_ERROR to HTTP_BAD_REQUEST 2016-09-01 22:12:19 +12:00
Johnson Lau 482f852da6 Implement NULLDUMMY softfork 2016-08-31 19:38:23 +08:00
Pieter Wuille 5805ac836c Add preciousblock tests
Rebased, improved and extended by Luke-Jr.
2016-08-26 23:06:09 +02:00
MarcoFalke fab5ecb771 [wallet] rpc: Drop misleading option 2016-08-24 19:28:04 +02:00
Wladimir J. van der Laan 21857d2bf7
Merge #8450: [Test] Replace rpc_wallet_tests.cpp with python RPC unit tests
9578333 Remove rpc_wallet_tests.cpp (Patrick Strateman)
25400c4 Account wallet feature RPC tests. (Patrick Strateman)
2016-08-24 12:10:42 +02:00
MarcoFalke faaec1377c [qa] Remove unused code 2016-08-19 22:43:05 +02:00
instagibbs 5547aeb015 p2psegwit.py transaction is rejected due to premature witness not size 2016-08-18 11:02:48 -04:00
Wladimir J. van der Laan 35f64e45c2
Revert "[qa] Adjust timeouts for micro-optimization of run time"
This reverts commit fa2d68f79c.

Temporary revert - see discussion in #8532.
2016-08-18 09:23:31 +02:00
Wladimir J. van der Laan a78f95a976
Merge #8531: [qa] abandonconflict: Use assert_equal
fa64306 [qa] abandonconflict: Use assert_equal (MarcoFalke)
2016-08-18 08:43:35 +02:00
MarcoFalke fa64306520 [qa] abandonconflict: Use assert_equal 2016-08-17 13:25:25 +02:00
Wladimir J. van der Laan 740cff5808
Merge #8482: [qa] Use single cache dir for chains
fad8cf6 [qa] Use single cache dir for chains (MarcoFalke)
fa2d68f [qa] Adjust timeouts for micro-optimization of run time (MarcoFalke)
fae596f [qa] Sort scripts by time for pull_tester and don't overwrite setup_chain (MarcoFalke)
2016-08-17 12:23:45 +02:00
instagibbs bc1d1f2660 Update p2p-segwit.py to reflect correct AskFor behavior 2016-08-16 15:06:46 -04:00
Wladimir J. van der Laan c1582d5d85 qa: Remove duplicate hash160 implementation
`hash160` is defined in `test_framework.script`, so there is no need
to define it here again.
2016-08-16 12:04:49 +02:00
Luke Dashjr 239cbd2e5c qa/rpc-tests/segwit: Test GBT sigops before and after activation 2016-08-08 21:58:36 +00:00
Patrick Strateman 25400c4de1 Account wallet feature RPC tests. 2016-08-07 19:30:16 -07:00
MarcoFalke fad8cf63e5 [qa] Use single cache dir for chains 2016-08-07 23:13:22 +02:00
MarcoFalke fa2d68f79c [qa] Adjust timeouts for micro-optimization of run time 2016-08-07 23:13:08 +02:00
Wladimir J. van der Laan 6e6ab2c323
Merge #8444: Fix p2p-feefilter.py for changed tx relay behavior
2c517b3 Fix p2p-feefilter.py for changed tx relay behavior (Suhas Daftuar)
2016-08-04 13:31:06 +02:00
Wladimir J. van der Laan 37d83bb0a9
Merge #8391: Consensus: Remove ISM
122786d Consensus: Remove ISM (NicolasDorier)
2016-08-04 12:20:35 +02:00
Wladimir J. van der Laan 2eed09fe1e
Merge #8442: [qa] Rework hd wallet dump test
fa4439d [qa] Rework hd wallet dump test (MarcoFalke)
2016-08-03 10:58:59 +02:00
Wladimir J. van der Laan 63c03dd41c
Merge #8418: Add tests for compact blocks
45c7ddd Add p2p test for BIP 152 (compact blocks) (Suhas Daftuar)
9a22a6c Add support for compactblocks to mininode (Suhas Daftuar)
a8689fd Tests: refactor compact size serialization in mininode (Suhas Daftuar)
9c8593d Implement SipHash in Python (Pieter Wuille)
56c87e9 Allow changing BIP9 parameters on regtest (Suhas Daftuar)
2016-08-02 08:26:57 +02:00
Suhas Daftuar 2c517b3928 Fix p2p-feefilter.py for changed tx relay behavior 2016-08-01 12:40:38 -04:00
MarcoFalke fa4439d355 [qa] Rework hd wallet dump test 2016-08-01 12:33:20 +02:00
MarcoFalke cf2cecb187
Merge #8400: [qa]: enable rpcbind_test
9bbb414 [qa]: enable rpcbind_test (whythat)
0ff4375 [qa]: add parsing for '<host>:<port>' argument form to rpc_url() (whythat)
2016-07-31 17:22:30 +02:00
Suhas Daftuar 45c7ddd109 Add p2p test for BIP 152 (compact blocks) 2016-07-29 09:41:58 -04:00
Suhas Daftuar 9a22a6c089 Add support for compactblocks to mininode 2016-07-29 09:41:58 -04:00
Suhas Daftuar a8689fdf8e Tests: refactor compact size serialization in mininode 2016-07-29 09:41:58 -04:00
Pieter Wuille 9c8593d2b4 Implement SipHash in Python 2016-07-29 09:41:58 -04:00
Jonas Schnelli 54af51d98d
[QA] Add walletdump RPC test (including HD- & encryption-tests) 2016-07-28 15:05:35 +02:00
Jonas Schnelli 2266b43e33
Port from 0.13: Create a new HD seed after encrypting the wallet
Forward-ports two commits from 0.13:
- [0.13] Create a new HD seed after encrypting the wallet
- [Wallet] Add CKeyMetadata record for HDMasterKey(s), factor out HD key generation

Github-Pull: #8389
Rebased-From: f142c11ac634df487cc4bc65a5f1c9a3e3563dd9 de45c065f0648c4c41b57cb492420ceeed29dd11
2016-07-28 13:22:33 +02:00
Wladimir J. van der Laan 4b1a4d8810
Merge #8381: Make witness v0 outputs non-standard
c59c434 qa: Add test for standardness of segwit v0 outputs (Suhas Daftuar)
1ffaff2 Make witness v0 outputs non-standard before segwit activation (Johnson Lau)
2016-07-26 14:24:11 +02:00
whythat 9bbb414b80 [qa]: enable rpcbind_test 2016-07-25 01:31:05 +03:00
whythat 0ff4375c93 [qa]: add parsing for '<host>:<port>' argument form to rpc_url() 2016-07-25 01:30:28 +03:00
NicolasDorier 122786d0e0 Consensus: Remove ISM 2016-07-23 01:02:53 +09:00
Suhas Daftuar c59c434b7d qa: Add test for standardness of segwit v0 outputs 2016-07-23 00:01:02 +08:00
Jonas Schnelli b50e1ac298
[Wallet] Correct hdmasterkeyid/masterkeyid name confusion 2016-07-21 21:58:12 +02:00
Suhas Daftuar 2c06bae39e Rename "block cost" to "block weight" 2016-07-18 13:28:26 -04:00
Wladimir J. van der Laan 238300b398
Merge #8323: Add HD keypath to CKeyMetadata, report metadata in validateaddress
7945088 [Wallet] comsetic non-code changes for the HD feature (Jonas Schnelli)
68d7682 [Wallet] ensure CKeyMetadata.hdMasterKeyID will be cleared during SetNull() (Jonas Schnelli)
f708085 [QA] extend wallet-hd test to cover HD metadata (Jonas Schnelli)
986c223 [Wallet] print hd masterkeyid in getwalletinfo (Jonas Schnelli)
b1c7b24 [Wallet] report optional HDKeypath/HDMasterKeyId in validateaddress (Jonas Schnelli)
5b95dd2 [Wallet] extend CKeyMetadata with HD keypath (Jonas Schnelli)
2016-07-18 07:58:33 +02:00
Wladimir J. van der Laan 37303934fe
Merge #8305: Improve handling of unconnecting headers
e91cf4b Add test for handling of unconnecting headers (Suhas Daftuar)
96fa953 Improve handling of unconnecting headers (Suhas Daftuar)
2016-07-18 07:46:12 +02:00
MarcoFalke fae596f0e4 [qa] Sort scripts by time for pull_tester and don't overwrite setup_chain 2016-07-15 20:18:11 +02:00
Jonas Schnelli 7945088d41
[Wallet] comsetic non-code changes for the HD feature 2016-07-15 10:34:08 +02:00
MarcoFalke 66668c420a [qa] Solve merge conflict of 4324bd237c 2016-07-14 10:30:13 +02:00
Wladimir J. van der Laan ca40ef6029
Merge #8312: Fix mempool DoS vulnerability from malleated transactions
46c9620 Test that unnecessary witnesses can't be used for mempool DoS (Suhas Daftuar)
bb66a11 Fix DoS vulnerability in mempool acceptance (Suhas Daftuar)
2016-07-14 08:21:13 +02:00
Wladimir J. van der Laan 4324bd237c
Merge #8311: Rename CTxinWitness -> CTxInWitness
36ae37a Rename CTxinWitness -> CTxInWitness (Bob McElrath)
2016-07-14 08:18:38 +02:00
Suhas Daftuar e91cf4b210 Add test for handling of unconnecting headers 2016-07-12 13:27:01 -04:00
Jonas Schnelli f70808596f
[QA] extend wallet-hd test to cover HD metadata 2016-07-09 12:12:36 +02:00
Wladimir J. van der Laan ff46dd4a34
Merge #7540: Rename OP_NOP3 to OP_CHECKSEQUENCEVERIFY
18c975c Rename NOP3 to CHECSEQUENCEVERIFY in rpc tests (BtcDrak)
14d0130 Rename OP_NOP3 to OP_CHECKSEQUENCEVERIFY (BtcDrak)
2016-07-08 11:39:10 +02:00
Wladimir J. van der Laan bb2646aea0
Merge #8309: [qa] Add wallet-hd test
fade505 [qa] Add wallet-hd test (MarcoFalke)
fa9976b [qa] test_framework: Add wrapper for stop_node (MarcoFalke)
2016-07-08 09:58:08 +02:00
Suhas Daftuar 46c9620f11 Test that unnecessary witnesses can't be used for mempool DoS
Check that pre-segwit activation, unnecessary witnesses won't cause
a txid to be permanently rejected.
2016-07-07 21:18:34 -04:00
MarcoFalke fade505e8b [qa] Add wallet-hd test 2016-07-07 22:19:35 +02:00
MarcoFalke fa9976b853 [qa] test_framework: Add wrapper for stop_node 2016-07-07 10:28:42 +02:00
Bob McElrath 36ae37a9f9 Rename CTxinWitness -> CTxInWitness 2016-07-06 19:46:46 -04:00
BtcDrak 18c975c831 Rename NOP3 to CHECSEQUENCEVERIFY in rpc tests 2016-06-28 17:23:32 +01:00
BtcDrak 14d01309be Rename OP_NOP3 to OP_CHECKSEQUENCEVERIFY 2016-06-28 17:17:36 +01:00
Suhas Daftuar 36f1b9df76 Tests: Increase sync_blocks() timeouts in pruning.py 2016-06-28 10:32:09 -04:00
Suhas Daftuar 330b0f31ee [qa] p2p segwit tests
mininode now supports witness transactions/blocks, blocktools
has a helper for adding witness commitments to blocks, and script
has a function to calculate hashes for signature under sigversion
1, used by segwit.

Py3 conversion by Marco Falke

Test to make sure upgraded nodes don't ask for non-wit blocks by
Gregory Sanders.
2016-06-22 15:43:02 +02:00
Alex Morcos 4f7ff00497 [qa] Add rpc test for segwit
Amended by Pieter Wuille to use multisig 1-of-1 for P2WSH tests, and BIP9
based switchover logic.

Fixes and py3 conversion by Marco Falke.
2016-06-22 15:43:01 +02:00
Pieter Wuille 2b1f6f9ccf BIP141: Other consensus critical limits, and BIP145
Includes changes by Suhas Daftuar, Luke-jr, and mruddy.
2016-06-22 15:43:00 +02:00
Wladimir J. van der Laan 0d41d705c8
Merge #8216: [qa] assert 'changePosition out of bounds'
fa58f94 [qa] pull-tester: Start longest test first (MarcoFalke)
fa3b379 [qa] pull-tester: Fix assertion and check for run_parallel (MarcoFalke)
fa32465 [qa] fundrawtransaction: Create get_unspent() (MarcoFalke)
fa8ce3b [qa] assert 'changePosition out of bounds' (MarcoFalke)
2016-06-21 10:24:19 +02:00
Wladimir J. van der Laan 65c2058cc8
Merge #8066: [qa] test_framework: Use different rpc_auth_pair for each node
fad1845 [qa] test_framework: Use different rpc_auth_pair for each node (MarcoFalke)
2016-06-20 13:41:11 +02:00
MarcoFalke fa324653ab [qa] fundrawtransaction: Create get_unspent() 2016-06-17 15:19:11 +02:00
MarcoFalke fa8ce3b670 [qa] assert 'changePosition out of bounds' 2016-06-17 15:19:02 +02:00
MarcoFalke facb6c0bf8 [qa] mininode: fail on send_message instead of silent return 2016-06-17 13:31:31 +02:00
Wladimir J. van der Laan 9c3d0fab36
Merge #7892: Add full UTF-8 support to RPC
7982fce doc: Mention full UTF-8 support in release notes (Wladimir J. van der Laan)
6bbb4ef test: test utf-8 for labels in wallet (Wladimir J. van der Laan)
a406fcb test: add ensure_ascii setting to AuthServiceProxy (Wladimir J. van der Laan)
60ab9b2 Squashed 'src/univalue/' changes from 2740c4f..f32df99 (Wladimir J. van der Laan)
2016-06-16 12:08:35 +02:00
Wladimir J. van der Laan 62fcf27bd8
Merge #8171: [RPC] Fix createrawtx sequence number unsigned int parsing
6fa950a [RPC] Fix createrawtx sequence number unsigned int parsing (Jonas Schnelli)
2016-06-16 11:06:51 +02:00
MarcoFalke fae1d063fc [qa] fundrawtransaction: Fix race, assert amounts 2016-06-13 21:35:04 +02:00
MarcoFalke fa26c420bf [qa] util: Move check_fee_amount out of wallet.py 2016-06-13 21:34:41 +02:00
Wladimir J. van der Laan 44c1b1c9bb
Merge #8141: Continuing port of java comparison tool
ff2dcf2 Tests: Edit bloated varint test and add option for 'barely expensive' tests (mrbandrews)
12c5a16 Catch exceptions from non-canonical encoding and print only to log (mrbandrews)
291f8aa Continuing port of java comptool (mrbandrews)
8c9e681 Tests: Rework blockstore to avoid re-serialization. (mrbandrews)
2016-06-13 11:37:37 +02:00
Wladimir J. van der Laan 6bbb4ef399 test: test utf-8 for labels in wallet 2016-06-10 15:20:49 +02:00
Wladimir J. van der Laan a406fcb6ca test: add ensure_ascii setting to AuthServiceProxy
Add a setting ensure_ascii to AuthServiceProxy. This setting,
defaulting to True (backwards compatible),
is passed through to json.dumps. If set to False, non-ASCII characters
>0x80 are not escaped. This is useful for testing server
input processing, as well as slightly more bandwidth friendly in case of
heavy unicode usage.
2016-06-10 15:20:49 +02:00
Pieter Wuille 7ce9ac5c83
Merge #7292: [RPC] Expose ancestor/descendant information over RPC
176e19b Mention new RPC's in release notes (Suhas Daftuar)
7f6eda8 Add ancestor statistics to mempool entry RPC output (Suhas Daftuar)
a9b8390 Add test coverage for new RPC calls (Suhas Daftuar)
b09b813 Add getmempoolentry RPC call (Suhas Daftuar)
0dfd869 Add getmempooldescendants RPC call (Suhas Daftuar)
8f7b5dc Add getmempoolancestors RPC call (Suhas Daftuar)
5ec0cde Refactor logic for converting mempool entries to JSON (Suhas Daftuar)
2016-06-09 16:32:37 +02:00
Suhas Daftuar a9b8390222 Add test coverage for new RPC calls 2016-06-09 09:56:27 -04:00
mrbandrews ff2dcf274d Tests: Edit bloated varint test and add option for 'barely expensive' tests 2016-06-08 15:09:01 -04:00
Pieter Wuille 66ed450d77
Merge #7935: Versionbits: GBT support
12c708a getblocktemplate: Use version/force mutation to support pre-BIP9 clients (Luke Dashjr)
9879060 getblocktemplate: Explicitly handle the distinction between GBT-affecting softforks vs not (Luke Dashjr)
72cd6b2 qa/rpc-tests: bip9-softforks: Add tests for getblocktemplate versionbits updates (Luke Dashjr)
d3df40e Implement BIP 9 GBT changes (Luke Dashjr)
2016-06-08 15:44:07 +02:00
Jonas Schnelli 6fa950a573
[RPC] Fix createrawtx sequence number unsigned int parsing 2016-06-08 15:43:28 +02:00
Wladimir J. van der Laan 75ec320a0d
Merge #8153: [rpc] fundrawtransaction feeRate: Use BTC/kB
fa7f4f5 [rpc] fundrawtransaction feeRate: Use BTC/kB (MarcoFalke)
faf82e8 [rpc] fundrawtransaction: Fix help text and interface (MarcoFalke)
2016-06-08 14:14:54 +02:00
Wladimir J. van der Laan 2156fa23b8
Merge #8078: Disable the mempool P2P command when bloom filters disabled
3d3602f Add RPC test for the p2p mempool command in conjunction with disabled bloomfilters (Jonas Schnelli)
beceac9 Disable the mempool P2P command when bloom filters disabled (Peter Todd)
2016-06-08 12:56:48 +02:00
Wladimir J. van der Laan 79004d4ae6
Merge #7957: [RPC][Bitcoin-TX] Add support for sequence number
ae357d5 [Bitcoin-Tx] Add tests for sequence number support (Jonas Schnelli)
e59336f [bitcoin-tx] allow to set nSequence number over the in= command (Jonas Schnelli)
a946bb6 [RPC] createrawtransaction: add option to set the sequence number per input (Jonas Schnelli)
2016-06-07 18:25:13 +02:00
MarcoFalke fa7f4f577c [rpc] fundrawtransaction feeRate: Use BTC/kB
Also introduce UniValueType

UniValueType is a wrapper for UniValue::VType which allows setting
a typeAny flag. This flag indicates the type does not matter.

(Used by RPCTypeCheckObj)
2016-06-07 13:12:57 +02:00
MarcoFalke faf82e8fc8 [rpc] fundrawtransaction: Fix help text and interface 2016-06-06 19:40:35 +02:00
Luke Dashjr 72cd6b20ca qa/rpc-tests: bip9-softforks: Add tests for getblocktemplate versionbits updates 2016-06-06 17:10:22 +00:00
Wladimir J. van der Laan 8c1e49ba13
Merge #7967: [RPC] add feerate option to fundrawtransaction
04eaa90 Add more clear interface for CoinControl.h regarding individual feerate (Jonas Schnelli)
3b35e48 [RPC] add feerate option to fundrawtransaction (Jonas Schnelli)
2016-06-03 15:47:48 +02:00
mrbandrews 291f8aa5da Continuing port of java comptool 2016-06-02 14:42:09 -04:00
Pieter Wuille f45f51e3ae Fix interrupted HTTP RPC connection workaround for Python 3.5+ 2016-06-02 19:17:04 +02:00
mrbandrews 8c9e681ff8 Tests: Rework blockstore to avoid re-serialization. 2016-05-31 14:21:40 -04:00
MarcoFalke 6ff2c8d29f
Merge #8104: Tests: add timeout to sync_blocks() and sync_mempools()
e871f83 Tests: add timeout to sync_blocks() and sync_mempools() (Suhas Daftuar)
2016-05-29 19:18:55 +02:00
MarcoFalke 06bd4f637f
Merge #8098: [qa] test_framework: Append portseed to tmpdir
fa57b0c [qa] test_framework: Append portseed to tmpdir (MarcoFalke)
2016-05-27 08:22:09 +02:00
Suhas Daftuar e871f8338a Tests: add timeout to sync_blocks() and sync_mempools()
Previously these functions would infinitely loop if sync failed;
now they have a default timeout of 60 seconds, after which an
AssertionError is raised.

sync_blocks() has also been improved and now compares the tip
hash of each node, rather than just using block count.
2016-05-26 14:19:07 -04:00
Suhas Daftuar 1ad9339508 Test framework: only cleanup on successful test runs 2016-05-25 05:43:50 -04:00
MarcoFalke 37f9a1f627
Merge #8047: [qa] test_framework: Set wait-timeout for bitcoind procs
fab5233 [qa] test_framework: Set wait-timeout for bitcoind procs (MarcoFalke)
2016-05-20 17:34:11 +02:00
Jonas Schnelli 3d3602faf4
Add RPC test for the p2p mempool command in conjunction with disabled bloomfilters 2016-05-20 16:50:48 +02:00
MarcoFalke 8844ef15de
Merge #8056: [qa] Remove hardcoded "4 nodes" from test_framework
fad68f7 [qa] Reduce node count for some tests (MarcoFalke)
fac9349 [qa] Remove hardcoded "4 nodes" from test_framework (MarcoFalke)
2016-05-20 15:26:22 +02:00
MarcoFalke fa57b0c5ef [qa] test_framework: Append portseed to tmpdir
This makes it possible to specify a tmpdir while running tests in
parallel
2016-05-20 09:18:41 +02:00
Wladimir J. van der Laan 239d419864
Merge #7917: Optimize reindex
b4d24e1 Report reindexing progress in GUI (Pieter Wuille)
d3d7547 Add -reindex-chainstate that does not rebuild block index (Pieter Wuille)
fb8fad1 Optimize ActivateBestChain for long chains (Pieter Wuille)
316623f Switch reindexing to AcceptBlock in-loop and ActivateBestChain afterwards (Pieter Wuille)
d253ec4 Make ProcessNewBlock dbp const and update comment (Pieter Wuille)
2016-05-18 12:31:32 +02:00
MarcoFalke fad184550e [qa] test_framework: Use different rpc_auth_pair for each node 2016-05-17 11:02:13 +02:00
MarcoFalke e2bf830bb6
Merge #8038: [qa, doc] Various minor fixes
fa83a5d [qa] wallet: Temporarily disable salvagewallet test (MarcoFalke)
fadd048 [doc] Link to clang-format in the developer notes (MarcoFalke)
fa72f7d [doc] Remove outdated line from listunspent RPC help, fix typo (MarcoFalke)
ac40ed7 Increase timeout waiting for pruned blk00000.dat (error10)
2016-05-17 09:27:25 +02:00
Pieter Wuille b4d24e142e Report reindexing progress in GUI 2016-05-17 00:45:58 +02:00
Pieter Wuille d3d7547911 Add -reindex-chainstate that does not rebuild block index 2016-05-17 00:45:57 +02:00
MarcoFalke fad68f751a [qa] Reduce node count for some tests 2016-05-15 12:58:56 +02:00
MarcoFalke fac9349798 [qa] Remove hardcoded "4 nodes" from test_framework 2016-05-15 12:58:53 +02:00
MarcoFalke fab5233fe6 [qa] test_framework: Set wait-timeout for bitcoind procs 2016-05-12 13:11:20 +02:00
MarcoFalke fad60b3911 [qa] Fix bip9-softforks blockstore issue 2016-05-11 16:43:32 +02:00
MarcoFalke fa83a5dbce [qa] wallet: Temporarily disable salvagewallet test 2016-05-10 18:09:18 +02:00
error10 ac40ed7800 Increase timeout waiting for pruned blk00000.dat
In my ever-growing list of test failures, I was seeing this one intermittently.

```
Running 2nd level testscript pruning.py...
Initializing test directory /tmp/testY5ypCv
Warning! This test requires 4GB of disk space and takes over 30 mins (up to 2 hours)
Mining a big blockchain of 995 blocks
Check that we haven't started pruning yet because we're below PruneAfterHeight
Success
Though we're already using more than 550MB, current usage: 587
Mining 25 more blocks should cause the first block file to be pruned
Assertion failed: blk00000.dat not pruned when it should be
  File "/home/error/bitcoinxt-0.11D/qa/rpc-tests/test_framework/test_framework.py", line 118, in main
    self.run_test()
  File "/home/error/bitcoinxt-0.11D/qa/rpc-tests/pruning.py", line 272, in run_test
    self.test_height_min()
  File "/home/error/bitcoinxt-0.11D/qa/rpc-tests/pruning.py", line 94, in test_height_min
    raise AssertionError("blk00000.dat not pruned when it should be")
Stopping nodes
Failed
```

After digging into the test, I found that the code is waiting 10 seconds for blk00000.dat to be deleted, and then throwing this failure if it still exists after 10 seconds.

I increased this amount, had the script print the actual time taken, and ran the test a few more times. The time taken ranged between 8 to 12 seconds. So, I feel that this timeout is too short.

After changing the timeout to 30 seconds, the test passes consistently.
(cherry picked from commit 3469911c89a48dd2fefe4d1c2a0c176256e14ee0)
2016-05-10 17:49:12 +02:00
MarcoFalke ccccc591a4 [qa] Add option --portseed to test_framework 2016-05-09 19:56:24 +02:00
MarcoFalke fa494dec79 [qa] pull-tester: Run rpc test in parallel 2016-05-09 19:56:16 +02:00
MarcoFalke 4e14afe42f
Merge #7971: [qa] Refactor test_framework and pull tester
fad3366 [qa] pull-tester: Adjust comment (MarcoFalke)
fafb33c [qa] Stop other nodes, even when one fails to stop (MarcoFalke)
2222dae [qa] Update README.md (MarcoFalke)
fabbf6b [qa] Refactor test_framework and pull tester (MarcoFalke)
2016-05-09 17:06:44 +02:00
Jonas Schnelli 5ea450834e
Autofind rpc tests --srcdir 2016-05-09 15:05:58 +02:00
MarcoFalke fafb33cdef [qa] Stop other nodes, even when one fails to stop 2016-05-06 12:44:03 +02:00
MarcoFalke fabbf6bd62 [qa] Refactor test_framework and pull tester
* log to stdout
* increase range for p2p and rpc ports
* UPPERCASE_CONSTANTS
* Stop nodes on CTRL+C
2016-05-06 12:43:34 +02:00
MarcoFalke fa389d4edc [qa] Switch to py3 2016-05-05 15:43:37 +02:00
Wladimir J. van der Laan 0630353323
Merge #7953: Create signmessagewithprivkey rpc
7db0ecb Test for signing messages (Andrew Chow)
f90efbf Create signmessagewithprivkey rpc (Andrew)
2016-05-05 12:54:14 +02:00
Pavel Janík 43bbcd0753 [qa] Fix typos in doc and comments 2016-05-02 22:31:00 +02:00
MarcoFalke fa17f93fbd [qa] smartfees: Properly use ordered dict 2016-05-02 19:36:06 +02:00
Jonas Schnelli 3b35e4896b
[RPC] add feerate option to fundrawtransaction 2016-04-28 22:04:07 +02:00
Andrew Chow 7db0ecb90c Test for signing messages
New rpc test for signing and verifying messages.
2016-04-28 14:58:14 -04:00
Jonas Schnelli a946bb6b18
[RPC] createrawtransaction: add option to set the sequence number per input 2016-04-27 15:42:14 +02:00
MarcoFalke fada064f67 [qa] test_framework: Properly print exceptions and assert empty dict 2016-04-26 18:04:26 +02:00
MarcoFalke 5555528b47 [qa] mininode: Unfiddle strings into bytes 2016-04-23 20:20:46 +02:00
Suhas Daftuar 807fa47a1e Tests: Fix deserialization of reject messages
Assume that reject messages for blocks or transactions due to reason
REJECT_MALFORMED will not include the hash of the block or tx being rejected.
2016-04-20 09:27:26 -04:00
Wladimir J. van der Laan a1eb344ba8
Merge #7762: [ZMQ] append a message sequence number to every ZMQ notification
0b25a9f [ZMQ] append a message sequence number to every ZMQ notification (Jonas Schnelli)
de821d5 [ZMQ] refactor message string (Jonas Schnelli)
2016-04-19 15:44:38 +02:00
Jonas Schnelli 0b25a9fb42
[ZMQ] append a message sequence number to every ZMQ notification 2016-04-19 15:32:11 +02:00
Joao Fonseca 5d217decc1 Add test to check spendable and unspendable UTXO on RPC listunspent 2016-04-19 12:29:27 +01:00
Joao Fonseca fa942c755a Move method to check matches within arrays on util.py 2016-04-19 12:29:19 +01:00
Wladimir J. van der Laan b1bf511af6
Merge #7833: tests: Check Content-Type header returned from RPC server
5078ca4 tests: Check Content-Type header returned from RPC server (Wladimir J. van der Laan)
2016-04-18 12:45:04 +02:00
João Barbosa af4fe7fd12 Add change options to fundrawtransaction 2016-04-15 15:36:05 +02:00
Wladimir J. van der Laan 6ef5e000a2
Merge #7853: [qa] py2: Unfiddle strings into bytes explicitly
faa41ee [qa] py2: Unfiddle strings into bytes explicitly (MarcoFalke)
2016-04-14 17:40:31 +02:00
Rusty Russell d12760b16a rpc-tests: handle KeyError nicely in test_framework.py
btcdrak wrote this for me.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2016-04-13 16:54:07 +09:30
Rusty Russell 85c807c9ea getblockchaininfo: make bip9_softforks an object, not an array.
We can't change "softforks", but it seems far more logical to use tags
in an object rather than using an "id" field in an array.

For example, to get the csv status before, you need to iterate the
array to find the entry with 'id' field equal to "csv":

   jq '.bip9_softforks | map(select(.id == "csv"))[] | .status'

Now:
   jq '.bip9_softforks.csv.status'

There is no issue with fork names being incompatible with JSON tags,
since we're selecting them ourselves.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2016-04-13 16:53:52 +09:30
MarcoFalke faa41ee204 [qa] py2: Unfiddle strings into bytes explicitly 2016-04-10 20:35:57 +02:00
Suhas Daftuar da5fdbb3a2 Test relay of version 2 transactions 2016-04-07 14:59:50 -04:00
Suhas Daftuar 5cb1d8a207 Tests: move get_bip9_status to util.py 2016-04-07 14:54:50 -04:00
Wladimir J. van der Laan 5078ca4543 tests: Check Content-Type header returned from RPC server
Check the Content-Type header that is returned from the RPC server. Only
if it is `application/json` the data is supposed to be parsed as JSON.

This gives better reporting if the HTTP server happens to return an error that is
not JSON-formatted, which is the case if it happens at a lower level
before JSON-RPC kicks in.

Before: `Unexpected exception caught during testing: No JSON object could be decoded`

After: `JSONRPC error: non-JSON HTTP response with '403 Forbidden' from server`
2016-04-07 15:40:17 +02:00
Wladimir J. van der Laan 3bc71e1572
Merge #7802: [qa] httpbasics: Actually test second connection
fa24456 [qa] httpbasics: Actually test second connection (MarcoFalke)
2016-04-06 14:14:14 +02:00
Wladimir J. van der Laan 401c65c6b3
Merge #7803: [qa] maxblocksinflight: Actually enable test
fac724c [qa] maxblocksinflight: Actually enable test (MarcoFalke)
2016-04-06 14:13:38 +02:00
Wladimir J. van der Laan 70ac71b877
Merge #7801: [qa] Remove misleading "errorString syntax"
ffff866 [qa] Remove misleading "errorString syntax" (MarcoFalke)
2016-04-06 14:12:44 +02:00
mruddy 92107d574d RPC: add versionHex in getblock and getblockheader JSON results; expand data in getblockchaininfo bip9_softforks field. 2016-04-04 22:21:00 +00:00
MarcoFalke ffff866da8 [qa] Remove misleading "errorString syntax" 2016-04-03 21:33:56 +02:00
MarcoFalke fac724c78f [qa] maxblocksinflight: Actually enable test 2016-04-03 20:49:32 +02:00
MarcoFalke fa24456d0c [qa] httpbasics: Actually test second connection 2016-04-03 20:43:56 +02:00
Wladimir J. van der Laan ff5874bcf7
Merge #7778: [qa] Bug fixes and refactor
4444806 [qa] mininode: Combine struct.pack format strings (MarcoFalke)
faaa3c9 [qa] mininode: Catch exceptions in got_data (MarcoFalke)
fa2cea1 [qa] rpc-tests: Properly use integers, floats (MarcoFalke)
fa524d9 [qa] Use python2/3 syntax (MarcoFalke)
2016-04-03 15:54:35 +02:00
MarcoFalke 444480649f [qa] mininode: Combine struct.pack format strings 2016-04-02 11:48:07 +02:00
MarcoFalke faaa3c9b65 [qa] mininode: Catch exceptions in got_data 2016-04-01 21:23:49 +02:00
MarcoFalke fa2cea163b [qa] rpc-tests: Properly use integers, floats 2016-04-01 21:23:30 +02:00