Commit graph

17064 commits

Author SHA1 Message Date
Wladimir J. van der Laan
75a109338f tests: Fix dangling pwalletMain pointer in wallet tests 2017-02-27 13:15:39 +01:00
Wladimir J. van der Laan
19cafc6239 test: Replace remaining sprintf with snprintf
Use of `sprintf` is seen as a red flag as many of its uses are insecure.
OpenBSD warns about it while compiling, and some modern platforms, e.g.
[cloudlibc from cloudabi](https://github.com/NuxiNL/cloudlibc) don't
even provide it anymore.

Although our uses of these functions are secure, it can't hurt to
replace them anyway. There are only 3 occurences left, all in the
tests.
2017-02-27 10:03:20 +01:00
Wladimir J. van der Laan
0a177148e7 uint256: replace sprintf with HexStr and reverse-iterator
Instead of calling sprintf for every byte, format the hex bytes
ourselves by help of HexStr and a reverse_iterator.
2017-02-27 10:02:45 +01:00
Wladimir J. van der Laan
c7e57ce981
Merge #9839: [qa] Make import-rescan.py watchonly check reliable
864890a [qa] Make import-rescan.py watchonly check reliable (Russell Yanofsky)

Tree-SHA512: ea0e2b1d4fc8f35174c3d575fb751b428daf6ad3aa944fad4e3ddcc9195e4f17051473acabc54203b1d27cca64cf911b737ab92e986c40ef384410652e2dbea1
2017-02-27 08:46:19 +01:00
Pieter Wuille
fa89670d34 Add SHA512 tree hash to merge commits 2017-02-26 17:31:28 -08:00
Pieter Wuille
277b472fb2 Run miner_tests with fixed options 2017-02-26 16:13:51 -08:00
Pieter Wuille
48faf0bf63 Abstract out BlockAssembler options 2017-02-26 16:13:17 -08:00
Marijn Stollenga
83ac719d34 Change bitcoin address in RPC helpaddress to an invalid address, so people don't accidentally send coins there (like I did). 2017-02-26 14:01:05 +01:00
Wladimir J. van der Laan
6206252e50
Merge #9847: Extra test vector for BIP32
30aedcb BIP32 extra test vector (Pieter Wuille)
2017-02-25 10:43:29 +01:00
Cory Fields
c5f008a416 don't throw std::bad_alloc when out of memory. Instead, terminate immediately 2017-02-25 01:09:11 -05:00
Wladimir J. van der Laan
f19afdbfb4
Merge #9612: [trivial] Rephrase the definition of difficulty.
dc222f8 Trivial: Rephrase the definition of difficulty in the code. (Karl-Johan Alm)
2017-02-24 12:48:56 +01:00
Wladimir J. van der Laan
dd6e0d6301
Merge #9833: Trivial: fix comments referencing AppInit2
ef9f495 Trivial: fix comments referencing AppInit2 (Marko Bencun)
2017-02-24 10:53:32 +01:00
Wladimir J. van der Laan
00285cece8
Merge #9840: Update sendfrom RPC help to correct coin selection misconception
f81f0d0 Update sendfrom RPC help to correct coin selection misconception (Russell Yanofsky)
2017-02-24 10:22:04 +01:00
Karl-Johan Alm
dc222f8f63
Trivial: Rephrase the definition of difficulty in the code. 2017-02-23 22:06:37 -08:00
Pieter Wuille
30aedcbdb4 BIP32 extra test vector 2017-02-23 17:59:52 -08:00
Marko Bencun
ef9f495e93 Trivial: fix comments referencing AppInit2
It was refactored into multiple functions in
0cc8b6bc44.
2017-02-24 09:19:29 +09:00
John Newbery
b23dcd2bf9 Fix segwit getblocktemplate test. 2017-02-23 18:01:37 -05:00
Matt Corallo
b49ad44efe Add comment about cs_most_recent_block coverage 2017-02-23 15:41:53 -05:00
Matt Corallo
c47f5b7982 Cache witness-enabled state with recent-compact-block-cache 2017-02-23 15:41:52 -05:00
Matt Corallo
efc135ff6d Use cached [compact] blocks to respond to getdata messages 2017-02-23 15:41:52 -05:00
Russell Yanofsky
864890adf5 [qa] Make import-rescan.py watchonly check reliable
Send payments during the test from a different node than the node generating
keys to be imported, so the spending node doesn't create transactions that
inadvertently involve (spend funds from) the imported keys.

Fixes #9826
2017-02-23 14:09:43 -05:00
Russell Yanofsky
f81f0d0030 Update sendfrom RPC help to correct coin selection misconception 2017-02-23 13:44:12 -05:00
Wladimir J. van der Laan
692c9eddba
Merge #9831: build: force a c++ standard to be specified
9829c54 build: force a c++ standard to be specified (Cory Fields)
2017-02-23 19:03:14 +01:00
MarcoFalke
a13a417cdc
Merge #9823: qa: Set correct path for binaries in rpc tests
3333ad0 qa: Set correct path for binaries in rpc tests (MarcoFalke)
2017-02-23 17:36:02 +01:00
MarcoFalke
d6064a89ac
Merge #9577: Fix docstrings in qa tests
3f95a80 Fix docstrings in qa tests (John Newbery)
2017-02-23 16:39:22 +01:00
MarcoFalke
7146d96de3
Merge #9766: Add --exclude option to rpc-tests.py
c578408 Add exclude option to rpc-tests.py (John Newbery)
2017-02-23 16:34:07 +01:00
John Newbery
3f95a806b1 Fix docstrings in qa tests
This commit fixes the module-level docstrings for the tests and helper
modules in qa. Many of these tests were uncommented previously - this
commit ensures that every test case has at least a minimum level of
commenting.
2017-02-23 10:31:04 -05:00
Wladimir J. van der Laan
e68c266f3d
Merge #9789: build: add --enable-werror and warn on vla's
205830a build: add --enable-werror option (Cory Fields)
b602fe0 build: warn about variable length arrays (Cory Fields)
2017-02-23 10:48:46 +01:00
Wladimir J. van der Laan
1d2a57e9fd
Merge #9824: qa: Check return code when stopping nodes
fa4cd2e qa: Check return code when stopping nodes (MarcoFalke)
2017-02-23 10:40:47 +01:00
Wladimir J. van der Laan
d14555de3d
Merge #9820: Fix pruning test broken by 2 hour manual prune window
874c736 Fix pruning test broken by 2 hour manual prune window (Russell Yanofsky)
2017-02-23 10:38:26 +01:00
Marko Bencun
5b528d746c qt: clean up initialize/shutdown signals
- Change initializeResult(int) to initializeResult(bool) to avoid
   implicit type conversion.
 - Use EXIT_FAILURE and EXIT_SUCCESS instead of magic numbers.
 - Remove the argument from shutdownResult(int); it was called with a
   constant argument.
2017-02-23 17:21:39 +09:00
Cory Fields
205830a37b build: add --enable-werror option
This turns some compiler warnings into errors. Useful for c-i.
2017-02-23 01:06:04 -05:00
MarcoFalke
fa4cd2e998 qa: Check return code when stopping nodes
This includes work by jnewbery
2017-02-23 03:05:43 +01:00
John Newbery
f5aba8a3c5 Move tx version 2 standardness check to after bip68 activation 2017-02-22 18:24:16 -05:00
Russell Yanofsky
09fe346a4f Avoid -Wshadow warnings in wallet_tests
Warnings introduced by commit e2e2f4c "Return errors from importmulti if
complete rescans are not successful" and reported by Pavel Janík
<Pavel@Janik.cz> in https://github.com/bitcoin/bitcoin/pull/9773 and
https://github.com/bitcoin/bitcoin/pull/9827

wallet/test/wallet_tests.cpp: In member function ‘void wallet_tests::rescan::test_method()’:
wallet/test/wallet_tests.cpp:377:17: warning: declaration of ‘wallet’ shadows a global declaration [-Wshadow]
         CWallet wallet;
2017-02-22 14:11:44 -05:00
Cory Fields
9829c54de2 build: force a c++ standard to be specified
Newer compilers may switch to newer standards by default. For example, gcc6
uses std=gnu++14 by default.
2017-02-22 13:37:35 -05:00
Wladimir J. van der Laan
bed5b30a56
Merge #9711: [Trivial] Remove incorrect help message from gettxoutproof()
9949ebf [Trivial] Remove incorrect help message from gettxoutproof() (John Newbery)
2017-02-22 13:03:42 +01:00
Wladimir J. van der Laan
1efc99c4dc
Merge #9819: Remove harmless read of unusued priority estimates
bc8fd12 Remove harmless read of unusued priority estimates (Alex Morcos)
2017-02-22 13:02:10 +01:00
Wladimir J. van der Laan
ba7220b5e8
Merge #9773: Return errors from importmulti if complete rescans are not successful
e2e2f4c Return errors from importmulti if complete rescans are not successful (Russell Yanofsky)
2017-02-22 12:43:11 +01:00
Marko Bencun
4b183d33f3 Remove block file location upgrade code
An effort to reduce the size of AppInitMain().

The removed code upgrades the location of the block files when
upgrading to 0.8. 0.8 seems to be the oldest version still in use.
2017-02-22 20:32:47 +09:00
Wladimir J. van der Laan
a8c5751038
Merge #9801: Removed redundant parameter from mempool.PrioritiseTransaction
eaea2bb Removed redundant parameter from mempool.PrioritiseTransaction (gubatron)
2017-02-22 12:18:38 +01:00
Wladimir J. van der Laan
5b583efaa7
Merge #9805: Add seed.btc.petertodd.org to mainnet DNS seeds
3b4dd2a Add seed.btc.petertodd.org to mainnet DNS seeds (Peter Todd)
2017-02-22 12:14:37 +01:00
Wladimir J. van der Laan
92dd6c8dfd
Merge #9815: Trivial: use EXIT_ codes instead of magic numbers
a87d02a use EXIT_ codes instead of magic numbers (Marko Bencun)
2017-02-22 11:48:45 +01:00
MarcoFalke
3333ad0b63 qa: Set correct path for binaries in rpc tests 2017-02-22 10:49:02 +01:00
Wladimir J. van der Laan
7e6dcd9995 random: Add fallback if getrandom syscall not available
If the code was compiled with newer (>=3.17) kernel headers but executed
on a system without the system call, every use of random would crash the
program. Add a fallback for that case.
2017-02-22 08:51:26 +01:00
Wladimir J. van der Laan
7cad849299 sanity: Move OS random to sanity check function
Move the OS random test to a sanity check function that is called every
time bitcoind is initialized.

Keep `src/test/random_tests.cpp` for the case that later random tests
are added, and keep a rudimentary test that just calls the sanity check.
2017-02-22 08:02:50 +01:00
Wladimir J. van der Laan
aa09ccbb74 squashme: comment that NUM_OS_RANDOM_BYTES should not be changed lightly 2017-02-22 07:38:42 +01:00
gubatron
eaea2bbb41 Removed redundant parameter from mempool.PrioritiseTransaction
(Also made the `const uint256 hash` parameter a `const uint256& hash` as suggested by @sdaftuar)
2017-02-21 20:44:23 -07:00
MarcoFalke
5628c70f2a
Merge #9807: RPC doc fix-ups.
851f6a3 [qa][doc] Correct rpc test options in readme (fanquake)
41e7219 [trivial] Add tests_config.ini to .gitignore (fanquake)
2017-02-22 00:05:22 +01:00
Wladimir J. van der Laan
224e6eb089 util: Specific GetOSRandom for Linux/FreeBSD/OpenBSD
These are available in sandboxes without access to files or
devices. Also [they are safer and more straightforward](https://en.wikipedia.org/wiki/Entropy-supplying_system_calls)
to use than `/dev/urandom` as reading from a file has quite a few edge
cases:

- Linux: `getrandom(buf, buflen, 0)`. [getrandom(2)](http://man7.org/linux/man-pages/man2/getrandom.2.html)
  was introduced in version 3.17 of the Linux kernel.
- OpenBSD: `getentropy(buf, buflen)`. The [getentropy(2)](http://man.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man2/getentropy.2)
  function appeared in OpenBSD 5.6.
- FreeBSD and NetBSD: `sysctl(KERN_ARND)`. Not sure when this was added
  but it has existed for quite a while.

Alternatives:

- Linux has sysctl `CTL_KERN` / `KERN_RANDOM` / `RANDOM_UUID`
  which gives 16 bytes of randomness. This may be available
  on older kernels, however [sysctl is deprecated on Linux](https://lwn.net/Articles/605392/)
  and even removed in some distros so we shouldn't use it.

Add tests for `GetOSRand()`:

- Test that no error happens (otherwise `RandFailure()` which aborts)
- Test that all 32 bytes are overwritten (initialize with zeros, try multiple times)

Discussion:

- When to use these? Currently they are always used when available.
  Another option would be to use them only when `/dev/urandom` is not
  available. But this would mean these code paths receive less testing,
  and I'm not sure there is any reason to prefer `/dev/urandom`.

Closes: #9676
2017-02-21 20:57:34 +01:00