MarcoFalke
ded01879d0
Merge #11067 : [qa] TestNode: Add wait_until_stopped helper method
...
faa8d9581
[qa] TestNode: Add wait_until_stopped helper method (MarcoFalke)
Pull request description:
This adds a helper method `wait_until_stopped` to the `TestNode` class. This should prevent numerous `time.sleep()` over all places.
Additionally, the timeout behavior is restored. (Was removed by the introduction of `TestNode`.)
This should prevent tests from running indefinitely by accident.
Tree-SHA512: 7133fc64d55711869c4e372e9d30625c98f1237fb3578c24a26900d9319831f10eb95592d7b08e536fa706158dffb0abf9197f11c5d9ef605c880628e1a6533f
2019-09-24 17:47:35 +02:00
MarcoFalke
17bb230d74
Merge #11121 : TestNode tidyups
...
7148b74dc
[tests] Functional tests must explicitly set num_nodes (John Newbery)
5448a1471
[tests] don't override __init__() in individual tests (John Newbery)
6cf094a02
[tests] Avoid passing around member variables in test_framework (John Newbery)
36b626867
[tests] TestNode: separate add_node from start_node (John Newbery)
be2a2ab6a
[tests] fix - use rpc_timeout as rpc timeout (John Newbery)
Pull request description:
Some additional tidyups after the introduction of TestNode:
- commit 1 makes TestNode use the correct rpc timeout. This should have been included in #11077
- commit 2 separates `add_node()` from `start_node()` as originally discussed here: https://github.com/bitcoin/bitcoin/pull/10556#discussion_r121161453 with @kallewoof . The test writer no longer needs to assign to `self.nodes` when starting/stopping nodes.
- commit 3 adds a `set_test_params()` method, so individual tests don't need to override `__init__()` and call `super().__init__()`
Tree-SHA512: 0adb030623b96675b5c29e2890ce99ccd837ed05f721d0c91b35378c5ac01b6658174aac12f1f77402e1d38b61f39b3c43b4df85c96952565dde1cda05b0db84
2019-09-24 16:58:03 +02:00
MarcoFalke
f55da3aa54
Merge #10711 : [tests] Introduce TestNode
...
789733891
[tests] Introduce TestNode (John Newbery)
Pull request description:
Continues #10082
TestNode is a class responsible for all state related to a bitcoind node
under test. It stores local state, is responsible for tracking the
bitcoind process and delegates unrecognised messages to the RPC
connection.
This commit changes start_nodes and stop_nodes to start and stop the
bitcoind nodes in parallel, making test setup and teardown much faster.
On my vm, this changeset reduces total test_runner runtime for the base set of tests
(including building the cache) from 263s to 195s (a 25% speedup). Note that the time
reported by test_runner does not include time spent building the cache:
*with TestNode*:
```
→ date +"%T" ; ./test_runner.py -q ; date +"%T"
12:48:04
..................................................................................................................................................................................................................................................................................................................................
TEST | STATUS | DURATION
abandonconflict.py | ✓ Passed | 12 s
bip68-112-113-p2p.py | ✓ Passed | 19 s
blockchain.py | ✓ Passed | 8 s
bumpfee.py | ✓ Passed | 13 s
decodescript.py | ✓ Passed | 3 s
disablewallet.py | ✓ Passed | 3 s
disconnect_ban.py | ✓ Passed | 6 s
fundrawtransaction.py | ✓ Passed | 37 s
getchaintips.py | ✓ Passed | 4 s
httpbasics.py | ✓ Passed | 3 s
import-rescan.py | ✓ Passed | 4 s
importmulti.py | ✓ Passed | 6 s
importprunedfunds.py | ✓ Passed | 3 s
invalidblockrequest.py | ✓ Passed | 4 s
invalidtxrequest.py | ✓ Passed | 4 s
keypool.py | ✓ Passed | 7 s
listsinceblock.py | ✓ Passed | 4 s
listtransactions.py | ✓ Passed | 33 s
mempool_limit.py | ✓ Passed | 4 s
mempool_persist.py | ✓ Passed | 15 s
mempool_reorg.py | ✓ Passed | 4 s
mempool_resurrect_test.py | ✓ Passed | 3 s
mempool_spendcoinbase.py | ✓ Passed | 3 s
merkle_blocks.py | ✓ Passed | 3 s
multi_rpc.py | ✓ Passed | 4 s
net.py | ✓ Passed | 3 s
nulldummy.py | ✓ Passed | 3 s
p2p-compactblocks.py | ✓ Passed | 28 s
p2p-fullblocktest.py | ✓ Passed | 126 s
p2p-leaktests.py | ✓ Passed | 8 s
p2p-mempool.py | ✓ Passed | 3 s
p2p-segwit.py | ✓ Passed | 59 s
p2p-versionbits-warning.py | ✓ Passed | 8 s
preciousblock.py | ✓ Passed | 3 s
prioritise_transaction.py | ✓ Passed | 5 s
proxy_test.py | ✓ Passed | 3 s
rawtransactions.py | ✓ Passed | 9 s
receivedby.py | ✓ Passed | 19 s
reindex.py | ✓ Passed | 12 s
rest.py | ✓ Passed | 9 s
rpcnamedargs.py | ✓ Passed | 3 s
segwit.py | ✓ Passed | 7 s
sendheaders.py | ✓ Passed | 24 s
signmessages.py | ✓ Passed | 3 s
signrawtransactions.py | ✓ Passed | 3 s
txn_clone.py | ✓ Passed | 4 s
txn_doublespend.py --mineblock | ✓ Passed | 4 s
uptime.py | ✓ Passed | 3 s
wallet-accounts.py | ✓ Passed | 3 s
wallet-dump.py | ✓ Passed | 7 s
wallet-encryption.py | ✓ Passed | 8 s
wallet-hd.py | ✓ Passed | 15 s
wallet.py | ✓ Passed | 31 s
walletbackup.py | ✓ Passed | 104 s
zapwallettxes.py | ✓ Passed | 9 s
zmq_test.py | ○ Skipped | 0 s
ALL | ✓ Passed | 735 s (accumulated)
Runtime: 189 s
12:51:19
```
*master*:
```
→ date +"%T" ; ./test_runner.py -q ; date +"%T"
12:40:13
..........................................................................................................................................................................................................................................................................................................................................................................................................................................
TEST | STATUS | DURATION
abandonconflict.py | ✓ Passed | 15 s
bip68-112-113-p2p.py | ✓ Passed | 19 s
blockchain.py | ✓ Passed | 8 s
bumpfee.py | ✓ Passed | 20 s
decodescript.py | ✓ Passed | 3 s
disablewallet.py | ✓ Passed | 3 s
disconnect_ban.py | ✓ Passed | 8 s
fundrawtransaction.py | ✓ Passed | 36 s
getchaintips.py | ✓ Passed | 11 s
httpbasics.py | ✓ Passed | 7 s
import-rescan.py | ✓ Passed | 16 s
importmulti.py | ✓ Passed | 10 s
importprunedfunds.py | ✓ Passed | 5 s
invalidblockrequest.py | ✓ Passed | 4 s
invalidtxrequest.py | ✓ Passed | 3 s
keypool.py | ✓ Passed | 7 s
listsinceblock.py | ✓ Passed | 11 s
listtransactions.py | ✓ Passed | 37 s
mempool_limit.py | ✓ Passed | 4 s
mempool_persist.py | ✓ Passed | 23 s
mempool_reorg.py | ✓ Passed | 7 s
mempool_resurrect_test.py | ✓ Passed | 3 s
mempool_spendcoinbase.py | ✓ Passed | 3 s
merkle_blocks.py | ✓ Passed | 10 s
multi_rpc.py | ✓ Passed | 6 s
net.py | ✓ Passed | 6 s
nulldummy.py | ✓ Passed | 3 s
p2p-compactblocks.py | ✓ Passed | 30 s
p2p-fullblocktest.py | ✓ Passed | 126 s
p2p-leaktests.py | ✓ Passed | 8 s
p2p-mempool.py | ✓ Passed | 3 s
p2p-segwit.py | ✓ Passed | 62 s
p2p-versionbits-warning.py | ✓ Passed | 8 s
preciousblock.py | ✓ Passed | 8 s
prioritise_transaction.py | ✓ Passed | 7 s
proxy_test.py | ✓ Passed | 10 s
rawtransactions.py | ✓ Passed | 15 s
receivedby.py | ✓ Passed | 28 s
reindex.py | ✓ Passed | 12 s
rest.py | ✓ Passed | 12 s
rpcnamedargs.py | ✓ Passed | 3 s
segwit.py | ✓ Passed | 12 s
sendheaders.py | ✓ Passed | 26 s
signmessages.py | ✓ Passed | 3 s
signrawtransactions.py | ✓ Passed | 3 s
txn_clone.py | ✓ Passed | 10 s
txn_doublespend.py --mineblock | ✓ Passed | 10 s
uptime.py | ✓ Passed | 3 s
wallet-accounts.py | ✓ Passed | 3 s
wallet-dump.py | ✓ Passed | 6 s
wallet-encryption.py | ✓ Passed | 8 s
wallet-hd.py | ✓ Passed | 18 s
wallet.py | ✓ Passed | 69 s
walletbackup.py | ✓ Passed | 130 s
zapwallettxes.py | ✓ Passed | 15 s
zmq_test.py | ○ Skipped | 0 s
ALL | ✓ Passed | 936 s (accumulated)
Runtime: 242 s
12:44:36
```
Tree-SHA512: 6dfc4c11fd0caf7de6954c93679cf22c3df0acc6f432e616d1151062a61f456faa8ae2fe670b427868af55bb564802df84c8fd76e90b4b338750dbc23f46ad88
2019-09-24 16:58:03 +02:00
Alexander Block
40399fd973
Circumvent BIP69 sorting in fundrawtransaction.py test ( #3100 )
...
"subtractFeeFromOutputs" is applied to the ordering of the input
transaction and after that BIP69 sorting is performed. This causes
flakiness in tests.
2019-09-22 23:47:17 +03:00
Wladimir J. van der Laan
443b577931
Merge #10784 : Do not allow users to get keys from keypool without reserving them
...
cf82a9e
Do not allow users to get keys from keypool without reserving them (Matt Corallo)
Pull request description:
fundrawtransaction allows users to add a change output and then
not have it removed from keypool. While it would be nice to have
users follow the normal CreateTransaction/CommitTransaction process
we use internally, there isnt much benefit in exposing this option,
especially with HD wallets, while there is ample room for users to
misunderstand or misuse this option.
This partially reverts #9377 . Would be nice to get this for 15 since its kinda crazy we have this option to begin with IMO, will need release notes as an RPC option is now ignored.
Tree-SHA512: 72b5ee9c4a229b84d799dfb00c56fe80d8bba914ce81a433c3f5ab325bf9bf2b839ee658c261734f0ee183ab19435039481014d09c41dbe155e6323e63beb01d
2019-09-08 00:10:56 -05:00
UdjinM6
f1ff148181
Fix bip69 vs change position issue ( #3063 )
...
* Fix bip69 vs change position issue
* Drop `setbip69enabled` rpc
2019-08-28 14:52:53 +03:00
UdjinM6
76822dd509
fix imports
2019-08-12 09:07:03 -05:00
MarcoFalke
a82f22e528
Merge #10556 : Move stop/start functions from utils.py into BitcoinTestFramework
...
5ba83c1
[tests] fix nits. (John Newbery)
05b8c08
[tests] reorganize utils.py module (code move only) (John Newbery)
0d473c5
[tests] move mocktime property and functions to BitcoinTestFramework (John Newbery)
cad967a
[tests] Move stop_node and start_node methods to BitcoinTestFramework (John Newbery)
f1fe536
[tests] fix flake8 warnings in test_framework.py and util.py (John Newbery)
37065d2
[tests] remove unused imports from utils.py (John Newbery)
Tree-SHA512: 461db412c57c4d0030e27fe3f78f17bcaf00b966f319a9e613460cca897508ff70a29db7138133fe1be8d447dad6702ba2778f9eddfe929016e560d71c20b09f
2019-08-12 09:07:03 -05:00
Pasta
83af2d8d50
remove redundant wait_node
...
Signed-off-by: Pasta <pasta@dashboost.org>
2019-07-24 12:02:28 -05:00
MarcoFalke
6320d516b3
Merge #10535 : [qa] fundrawtx: Fix shutdown race
...
fa62dad
[qa] fundrawtx: Fix shutdown race (MarcoFalke)
Tree-SHA512: bf1a3dd053a0f950639bb78fc6ef6255cc5e0b3d27efb97d956f4bd3342839c28a91d8d0793ef7473ab0c8beda30034767031060ae1895408513aa1d9f7c9ff4
2019-07-24 11:59:09 -05:00
UdjinM6
3fe858e53f
wait for node1 in fundrawtransaction(-hd).py tests
2019-07-05 22:21:00 -05:00
MarcoFalke
e353d271f0
Merge #10359 : [tests] functional tests should call BitcoinTestFramework start/stop node methods
...
53f6775
fixup: fix nits (John Newbery)
a433d8a
[tests] Update start/stop node functions to be private module functions (John Newbery)
d8c218f
[tests] Functional tests call self.start_node(s) and self.stop_node(s) (John Newbery)
Tree-SHA512: 9cc01584a5e57686b7e7cb1c4c5186ad8cc7eb650d6d4f27b06bdb5e249a10966705814bdfb22d9ff2d5d3326911e489bf3d22257d751a299c0b24b7f40bffb5
2019-06-26 12:44:45 -05:00
UdjinM6
f02bf18eec
Other fixes
2019-06-21 09:33:27 -05:00
MarcoFalke
7c47cae060
Merge #10198 : [tests] Remove is_network_split from functional test framework
...
c9cc76d
[tests] Remove is_network_split from funtional test cases (John Newbery)
Tree-SHA512: a43ec63a7dc20cbe9048f8d3af755aef55e9247f605d6481e6d665112882a749af7514f29c83ca9d761421b8e0f7282e5b9f8fc471985d222de826da7cc80ccf
Signed-off-by: Pasta <pasta@dashboost.org>
2019-06-19 08:20:15 -05:00
Wladimir J. van der Laan
1209417938
Merge #10083 : [QA] Renaming rawTx into rawtx
...
dd5be2c
[QA] Renaming rawTx into rawtx (NicolasDorier)
Tree-SHA512: c999c3cbe7bbd00bf5cc9813741c485caea9925de1214c8a7ef717a7c109c1a8baf73b460db3b08f4ec138d773b46176531c48295504ed75180d4b3666b85b99
2019-05-21 08:52:45 -05:00
MarcoFalke
1781c7a701
Merge #10069 : [QA] Fix typo in fundrawtransaction test
...
803e6a3
[QA] Fix typo in fundrawtransaction test (Nicolas Dorier)
Tree-SHA512: 7b88cf09d7e756f0f5535738993868287d4c7049db44072e318f48a9b08786bebb9877f787471bbf6aac58b3d709275eefa372d727f4afd6ded41494fe0024d1
2019-05-21 08:52:45 -05:00
MarcoFalke
9f07f489de
Merge #10047 : [tests] Remove unused variables and imports
...
3897459
[tests] Remove unused variables (practicalswift)
72163d4
[tests] Remove unused and duplicate imports (practicalswift)
Tree-SHA512: 926af14b844bfca3bdd08b3cfdcb0edd3652efb4612d5571fee9abb917a6ce4e7d11d3601ff9c3d017e943ebe1e9ebdfccaf0af3db84d201b61941e9c1c9146a
2019-05-21 08:52:44 -05:00
PastaPastaPasta
6edbc9cebd
Merge bitcoin#9956: Reorganise qa directory ( #2912 )
...
* Merge #9956 : Reorganise qa directory
63d66ba
Move src/test/bitcoin-util-test.py to test/util/bitcoin-util-test.py (John Newbery)
5b0bff4
Rename --enable-extended-rpc-tests to --enable-extended-functional-tests (John Newbery)
a9bd622
Rename test/pull-tester/rpc-tests.py to test/functional/test_runner.py (John Newbery)
c28ee91
Rename rpc-tests directory to functional (John Newbery)
00902c4
Rename qa directory to test (John Newbery)
Tree-SHA512: ee7125c0c647d81590177beef2c8852c4ef76fdcf888096d9d4d360562a01d8d3b453345c3040487b2a043935bd1e7e80018f34462d6e02262bedbe23edcc576
resolve build errors
Signed-off-by: Pasta <Pasta@dash.org>
update test_runner.py in testintegrations.sh
Signed-off-by: Pasta <Pasta@dash.org>
* moved dash specific tests
Signed-off-by: Pasta <Pasta@dash.org>
* dashify README.md
Signed-off-by: Pasta <Pasta@dash.org>
* removed autoix*.py
Signed-off-by: Pasta <Pasta@dash.org>
* change back file perms
* dedashify
Signed-off-by: Pasta <Pasta@dash.org>
2019-05-19 23:20:34 +03:00