14889 Commits

Author SHA1 Message Date
Wladimir J. van der Laan
a43be5bcdb rpc: Prevent dumpwallet from overwriting files
Prevent arbitrary files from being overwritten. There have been reports
that users have overwritten wallet files this way. It may also avoid
other security issues.

Fixes #9934. Adds mention to release notes and adds a test.

Github-Pull: #9937
Rebased-From: 0cd9273fd959c6742574259d026039f7da0309a2
2017-10-04 15:11:24 +02:00
MarcoFalke
019c492490 qa: Fix lcov for out-of-tree builds
Github-Pull: #11443
Rebased-From: fae60e338639b3a09d2f26d8eb5feb3bb576b1fd
2017-10-04 14:29:07 +02:00
MarcoFalke
e169349f8c qa: Restore bitcoin-util-test py2 compatibility
Github-Pull: #11433
Rebased-From: fafff1220cf798e25f02cdd8affb70506dd366cc
2017-10-04 11:59:33 +02:00
Matt Corallo
b6c0209aaf Fix validationinterface build on super old boost/clang
This should fix all the non-dependancy issues for termux builds.
See Github issue #11388.

Github-Pull: #11440
Rebased-From: 96c2ce9d343147608c197bc2333138b82141340f
2017-10-04 11:54:36 +02:00
Wladimir J. van der Laan
6a62c745a9 qt: Backup former GUI settings on -resetguisettings
Writes the GUI settings to `guisettings.bak` in the data directory
before wiping them. This can be used to retroactively troubleshoot
issues (e.g. #11262) where `-resetguisettings` solves the problem.

Github-Pull: #11338
Rebased-From: 723aa1b8752c1d6c6c0a76059c532ebe2f406fc1
2017-10-04 11:53:18 +02:00
Gregory Sanders
0fe2a9a196 when clearing addrman clear mapInfo and mapAddr
Github-Pull: #11252
Rebased-From: b86a42077a134888c53bfd406b87bf0a39c78264
2017-10-04 11:48:39 +02:00
Suhas Daftuar
6b4d9f2736 wallet: update stored witness in AddToWallet
Replace witness-stripped wallet transactions with full transactions;
this can happen when upgrading from a pre-segwit wallet to a segwit-
aware wallet.

Github-Pull: #11225
Rebased-From: d01a9682b126a5f83c7311e652e6e62f2c2e1d20
2017-10-04 11:47:44 +02:00
Gregory Sanders
806c78f014 add functional test for mempoolreplacement command line arg
Github-Pull: #11407
Rebased-From: 1088b5322d0e7a8366a285e2baa49c766a9ba5bd
2017-10-03 22:03:09 +02:00
Johnson Lau
a825d4af5e Fix bip68-sequence rpc test
Github-Pull: #11399
Rebased-From: 49f869fe91716785b3276925d64bf8955feff69f
2017-10-03 22:03:09 +02:00
Matt Corallo
a36f3320a9 Verify DBWrapper iterators are taking snapshots
The LevelDB docs seem to indicate that an iterator will not take
snapshots (even providing instructions on how to do so yourself).
In several of the places we use them, we assume snapshots to have
been taken.

In order to make sure LevelDB doesn't change out from under us
(and to prevent the next person who reads the docs from having the
same fright I did), verify that snapshots are taken in our tests.

Github-Pull: #11422
Rebased-From: bb8376bbc3d96af727444f90e5f60d47105609dc
2017-10-03 22:03:09 +02:00
Suhas Daftuar
8d2e51d862 qa: Fix bug introduced in p2p-segwit.py
Changing __init__() -> set_test_params() in the tests should not have
applied to NodeConnCB-derived objects.

Github-Pull: #11319
Rebased-From: f97ab35fa9687fd5c110ad6cca5be5b4a5c2142d
2017-10-03 22:03:09 +02:00
Suhas Daftuar
2f0b30a58a qa: Treat mininode p2p exceptions as fatal
Github-Pull: #11319
Rebased-From: a7820422e0b182db6f1df8904242e5d76d6c73fa
2017-10-03 22:03:09 +02:00
Andrew Chow
e4605d9dd4 Tests for zmqpubrawtx and zmqpubrawblock
Github-Pull: #10552
Rebased-From: d3677ab757ea57b21d8aed24d5bc3c4bfe9bb68c
2017-10-03 22:03:09 +02:00
Jim Posen
2c4ff35a8f [script] Unit tests for IsMine
Does not test watch-only addresses.

Github-Pull: #11116
Rebased-From: 7a1e873b27b790c965d9927ecd465710dc103136
2017-10-03 22:03:09 +02:00
Jim Posen
794a80eee3 [script] Unit tests for script/standard functions
Github-Pull: #11116
Rebased-From: d7afe2d1577eb3f6775301c81b94a191e0db99d9
2017-10-03 22:03:09 +02:00
John Newbery
f9cf7b589f [tests] Check connectivity before sending in assumevalid.py
assumevalid.py would try to send over a closed P2P connection in a loop,
hitting the following failure many times:

TestFramework.mininode (ERROR): Cannot send message. No connection to node!

The test still passes, but this is a lot of noise in the test log.

Just check that the connection is open before trying to send.

Github-Pull: #11345
Rebased-From: e9e9391083721ca9733cc00a1907384f83b6435e
2017-10-03 22:03:09 +02:00
John Newbery
f1ced0d776 [tests] Make p2p-leaktests.py more robust
Github-Pull: #11078
Rebased-From: 0063d2c3dce9d9c1678197d2c65ee878793d1ef9
2017-10-03 22:03:09 +02:00
MarcoFalke
2e1ac70df9 [qa] zapwallettxes: Wait up to 3s for mempool reload
Github-Pull: #11308
Rebased-From: fadd0c16b6bd62e9d663d906755320ae089e02d3
2017-10-03 22:03:08 +02:00
Cristian Mircea Messel
b6468d3c42 Add listwallets RPC test to multiwallet.py
Github-Pull: #11310
Rebased-From: fb1f3258225a7052f4fc9e3f2accc3811c53e221
2017-10-03 22:03:08 +02:00
John Newbery
d8dd8e7356 [tests] fixup dbcrash interaction with add_nodes()
Github-Pull: #11230
Rebased-From: 8fdb6f9126fe1e13b60de11fd34c204247679ef4
2017-10-03 22:03:08 +02:00
MarcoFalke
62d18cdb89 doc: Prepare release notes for 0.15.1 2017-10-03 20:28:38 +02:00
Paul Berg
8b61aee690 Put back inadvertently removed copyright notices
In an abundance of caution this restores "Bitcoin Developers" to the COPYING file in
case there were contributors before that point in time that would object to the
current label.  It's harmless and more pedantically correct.

[Change extracted from the Bitcoin-abc repository, commit message by gmaxwell]

Signed-off-by: Gregory Maxwell <greg@xiph.org>

Github-Pull: #11318
Rebased-From: d552ed678c2632bafeab695c639f5fe185dc9853
2017-10-03 20:18:01 +02:00
Matt Corallo
75997c3b35 Disallow uncompressed pubkeys in bitcoin-tx [multisig] output adds
Github-Pull: #11377
Rebased-From: 28d4542a0ac77a30a242d0568e580a5b437f53fa
2017-10-03 20:12:07 +02:00
MeshCollider
8d13b4298c Replace save|restoreWindowGeometry with Qt functions
Github-Pull: #11335
Rebased-From: 13baf7217bf8394ae02efc376208ae86eac4d0f6
2017-10-03 20:12:07 +02:00
Lucas Betschart
6642558078 [Qt] Add delay before filtering transactions
Fixes 3141

Github-Pull: #11015
Rebased-From: 7b137acedd5e2ff3fe5395a927c546a528b0cac6
2017-10-03 20:03:42 +02:00
Andrew Chow
19d63e8a93 Remove custom fee radio group
Removes the extraneous custom fee radio group and its single radio
button. The radio button is replaced with a label that has the
radio button's text.

Github-Pull: #11334
Rebased-From: e53fa4a1ca58ef46416c4a96542722601fb75c5a
2017-10-03 19:51:35 +02:00
Wladimir J. van der Laan
b1a6c94683 rpc: make estimatesmartfee argument naming consistent with documentation
Github-Pull: #11267
Rebased-From: 5acd82de9ad6df8cab922da66d49b8ff2bd35439
2017-10-03 19:30:27 +02:00
Wladimir J. van der Laan
921542e0bd rpc: update cli for estimatefee argument rename
The first argument of estimatesmartfee was renamed from nblocks to
conf_target in 06bcdb8da64502a64df03f3c89fbc6ccb72cd349. Update the
client-side table as well.

Github-Pull: #11267
Rebased-From: 24697c40ee6739b812259140042d426c81179977
2017-10-03 19:23:55 +02:00
MeshCollider
2e31b1d48d Fix division by zero in time remaining
Github-Pull: #11237
Rebased-From: 3b69a08c53c2ef738f32c270fdacf1e4ed5a4c97
2017-10-03 19:19:46 +02:00
João Barbosa
2b97b36e5d [test] Replace check_output with low level version
Github-Pull: #11125
Rebased-From: ce379b47b92d6c04250c21719bb1abfb41c586ad
2017-10-03 19:10:21 +02:00
João Barbosa
e38211f5e8 [test] Add assert_raises_process_error to assert process errors
Github-Pull: #11125
Rebased-From: 232e3e8471edb346c09f906c996b2f350cabc72a
2017-10-03 19:10:05 +02:00
João Barbosa
e0bfd28de2 [test] Add support for custom arguments to TestNodeCLI
Github-Pull: #11125
Rebased-From: 5c18a84b9a49e3f9dacf0502dbf7d5d755f38da6
2017-10-03 19:09:52 +02:00
João Barbosa
812c870043 [test] Improve assert_raises_jsonrpc docstring
Github-Pull: #11125
Rebased-From: e1274947d4574bb83a020d0e178f0e5db7fc6282
2017-10-03 19:09:43 +02:00
MarcoFalke
eeb24a3a01 [qa] TestNode: Add wait_until_stopped helper method
Github-Pull: #11067
Rebased-From: faa8d9581affde35a8242c63fca8a52004d4f943
2017-10-03 18:53:35 +02:00
MeshCollider
f3f7891776 Stop test_bitcoin-qt touching ~/.bitcoin
Github-Pull: #11210
Rebased-From: dea086f498097d19a2c9acbfc753c9c2d68dbb03
2017-10-03 18:53:16 +02:00
Chris Moore
47c02a8ae8 qt: Use IsMine to validate custom change address
(cherry picked from commit c41224dfd51c896341bbf2fa23e160bf5ffe27c3)

Github-Pull: #11247
Rebased-From: a1ea1cfbd8d4fc976f0ab2423d395e03ded6eedd
2017-10-03 18:52:28 +02:00
MeshCollider
f0b67954f0 Remove redundant testutil files
Github-Pull: #11234
Rebased-From: d1138e36208dac87a27f415f39c70377636e93f1
2017-10-03 18:50:43 +02:00
Cristian Mircea Messel
44241765e3 Improve signmessages functional test
This patch improves branch coverage of the test, making sure a
message can not be verified with the wrong address or signature.

Github-Pull: #11241
Rebased-From: b3d6fc654770e3b4d2f82e8d77e531df9e522982
2017-10-03 18:49:02 +02:00
Daniel Edgecumbe
7310f1f2eb [Qt] Fix display of package name on 'open config file' tooltip
Github-Pull: #11198
Rebased-From: 14ccd4d8d1847d64903224562ad3c7eb795b3781
2017-10-03 18:46:51 +02:00
John Newbery
cef03198dc [tests] fixups from set_test_params()
Github-Pull: #11215
Rebased-From: 3918d93f3cd2305dc12cb964aebba0fc1f8720b4
2017-10-03 18:45:11 +02:00
John Newbery
82bf6fc6d4 [tests] Functional tests must explicitly set num_nodes
Github-Pull: #11121
Rebased-From: 7148b74dc39110f53c665b94fa9d994c6ad6dc1c
2017-10-03 18:44:16 +02:00
John Newbery
801d2ae924 [tests] don't override __init__() in individual tests
Almost all test scripts currently need to override the __init__()
method. When they do that they need to call into super().__init__() as
the base class does some generic initialization.

This commit makes the base class __init__() call into set_test_params()
method. Individual test cases can override set_test_params() to setup
their test parameters.

Github-Pull: #11121
Rebased-From: 5448a1471d6fc638a2220ea5a2f3782172efe14c
2017-10-03 18:43:43 +02:00
John Newbery
bb5e7cb308 [tests] Avoid passing around member variables in test_framework
Github-Pull: #11121
Rebased-From: 6cf094a0229d051ab8a15189c8a0bc6011919e72
2017-10-03 18:43:29 +02:00
John Newbery
4d3ba18386 [tests] TestNode: separate add_node from start_node
Separates the act of creating a TestNode object from starting the node.
The test_framework now keeps track of its list of TestNodes, and test
writers can call start_node() and stop_node() without having to update
the self.nodes list.

Github-Pull: #11121
Rebased-From: 36b626867087e9fae6d85f926248997ebff327b7
2017-10-03 18:43:15 +02:00
John Newbery
11a5992c90 [tests] fix - use rpc_timeout as rpc timeout
Github-Pull: #11121
Rebased-From: be2a2ab6a67beef97e3c3cf42bd5eeea6c4e55cf
2017-10-03 18:42:57 +02:00
Cristian Mircea Messel
847c75ec64 Add getmininginfo functional test
Github-Pull: #11150
Rebased-From: 4f2905b76b502a9de235dbe739e5fe504ef5bc22
2017-10-03 18:41:34 +02:00
Jorge Timón
2a5d099e47 RPC: gettxout: Slightly improve doc and tests
Github-Pull: #10859
Rebased-From: 6d2d2eb49389d70a5db327e133c9c90748f82d5f
2017-10-03 18:40:05 +02:00
Russell Yanofsky
2cb720ae61 Acquire cs_main lock before cs_wallet during wallet initialization
CWallet::MarkConflicted may acquire the cs_main lock after
CWalletDB::LoadWallet acquires the cs_wallet lock during wallet initialization.
(CWalletDB::LoadWallet calls ReadKeyValue which calls CWallet::LoadToWallet
which calls CWallet::MarkConflicted). This is the opposite order that cs_main
and cs_wallet locks are acquired in the rest of the code, and so leads to
POTENTIAL DEADLOCK DETECTED errors if bitcoin is built with -DDEBUG_LOCKORDER.

This commit changes CWallet::LoadWallet (which calls CWalletDB::LoadWallet) to
acquire both locks in the standard order. It also fixes some tests that were
acquiring wallet and main locks out of order and failed with the new locking in
CWallet::LoadWallet.

Error was reported by Luke Dashjr <luke-jr@utopios.org> in
https://botbot.me/freenode/bitcoin-core-dev/msg/90244330/

Github-Pull: #11126
Rebased-From: de9a1db2ed14e0c75ffd82dc031f7ad30c56d195
2017-10-03 18:35:39 +02:00
Wladimir J. van der Laan
b278a43646 rpc: Write authcookie atomically
Use POSIX rename atomicity at the `bitcoind` side to create a working
cookie atomically:

- Write `.cookie.tmp`, close file
- Rename `.cookie.tmp` to `.cookie`

This avoids clients reading invalid/partial cookies as in #11129.

Github-Pull: #11131
Rebased-From: 82dd7195e1fb943f9cd45a48188f9678219c0206
2017-10-03 18:34:30 +02:00
John Newbery
716066dbea [tests] Add bitcoin_cli.py test script
Github-Pull: #10798
Rebased-From: c6ec4358a797b7a11283238a0cf0b4531def9e92
2017-10-03 18:31:44 +02:00