Commit graph

17566 commits

Author SHA1 Message Date
John Newbery
55e8050853 [tests] p2p_segwit: remove unnecessary arguments from subtests. 2018-06-29 15:35:07 -04:00
John Newbery
25711c2696 [tests] p2p_segwit: log and assert segwit status in subtest wrapper. 2018-06-29 15:35:07 -04:00
John Newbery
6839863d53 [tests] p2p_segwit: Make sure each subtest leaves utxos for the next. 2018-06-29 15:35:07 -04:00
John Newbery
bfe32734de [tests] p2p_segwit: wrap subtests with subtest wrapper.
The subtest wrapper logs the name of the subtest.
2018-06-29 15:34:22 -04:00
John Newbery
2af4e398dc [tests] p2p_segwit: re-order function definitions.
This re-orders the defintions in p2p_segwit so subtests are
defined in the order that they're called.
2018-06-29 15:34:22 -04:00
John Newbery
94a0134a40 [tests] p2p_segwit: standardise comments/docstrings. 2018-06-29 15:32:52 -04:00
John Newbery
f7c7f8ecf3 [tests] p2p_segwit: Fix flake8 warnings. 2018-06-29 15:32:52 -04:00
Wladimir J. van der Laan
a6ed99a1e6
Merge #13517: qa: Remove need to handle the network thread in tests
fa87da2f17 qa: Avoid start/stop of the network thread mid-test (MarcoFalke)

Pull request description:

  This simplifies test writing by removing the need to handle the network thread in tests. E.g. start thread, join thread, restart thread mid-test, adding p2p connections at the "right" time, ...

Tree-SHA512: 533642f12fef5496f1933855edcdab1a7ed901d088d34911749cd0f9e044c8a6cb1f89985ac3a7f41a512943663e4e270a61978f6f072143ae050cd102d4eab8
2018-06-29 18:10:57 +02:00
Daniel Kraft
caac39b0ac Make ZMQ notification interface instance global.
This moves the used instance of CZMQNotificationInterface from a static
variable in init.cpp to a globally-accessible one declared in
zmq/zmqnotificationinterface.h.  The variable is also renamed to
g_zmq_notification_interface, to be consistent with other globals.

We need this to implement a new RPC method "getzmqnotifications" (see
https://github.com/bitcoin/bitcoin/issues/13526) in a follow up.
2018-06-29 15:16:31 +02:00
MarcoFalke
f3c9c40aeb
Merge #13545: tests: Fix test case streams_serializedata_xor. Remove Boost dependency.
962d8eed5b Remove boost dependency (boost/assign/std/vector.hpp) (practicalswift)
c6fd0df4ef Fix incorrect tests (practicalswift)

Pull request description:

  * Fix test case `streams_serializedata_xor`.
  * Remove Boost dependency.

Tree-SHA512: 609c4ced1b6a8b86f6a37e4220535f1b3c9f2e80949cd034ecc069a94c55c05cd514f2e132fe7f715161ee29811a0fadb6903635c507411d8dc3e7efe864edeb
2018-06-30 00:29:59 +14:00
Wladimir J. van der Laan
90990d2741
Merge #13544: depends: Update Qt download url
2fca6568f2 depends: Update Qt download url (fanquake)

Pull request description:

  Qt has moved the 5.7.1 downloads from the [official_releases](https://download.qt.io/official_releases/qt/) directory to it's [archive](https://download.qt.io/archive/qt/).

  ```
  Fetching qtbase-opensource-src-5.7.1.tar.gz from http://download.qt.io/official_releases/qt/5.7/5.7.1/submodules
    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                   Dload  Upload   Total   Spent    Left  Speed
    0     0    0     0    0     0      0      0 --:--:--  0:00:03 --:--:--     0
  curl: (22) The requested URL returned error: 404 Not Found
  ```

  This updates the qt download url in depends so we aren't always falling back on [bitcoincore.org/depends-sources](https://bitcoincore.org/depends-sources).

Tree-SHA512: 2aca3260fa0550322108b5bcc8c226e13b48c3500b7d95f545651e5b60d290edde16d9f6dea45f438c39a1388cb304cc16768a9728d32d3a441667968ea35425
2018-06-29 11:42:12 +02:00
MarcoFalke
b330f3fdd5
Merge #13563: bench: Simplify CoinSelection
c2e4fc84ec bench: Simplify CoinSelection (João Barbosa)

Pull request description:

  Closes #13549.

  As pointed by @MarcoFalke:
   - `SelectCoinsMinConf` should always succeed as there are enough coins in the wallet.
   - Removed creating the coins in the wallet.

Tree-SHA512: 965c363bcaf0ca7a1dec35b5cf4866abcf190c53eb7012dc4aeb4d29830f13a7465644bfb5a47f6ea3eaa86e4d4a57fe41e7b2593bf5094b76a551c4c71625bb
2018-06-29 10:08:54 +14:00
John Newbery
ea65182f03 [wallet] loadwallet shouldn't create new wallets.
A bug in the initial implementation of loadwallet meant that if the
arguement was a directory that didn't contain a wallet.dat file, a new
wallet would be created in that directory. Fix that so that if a
directory is passed in, it must contain a wallet.dat file.

Bug reported by promag (João Barbosa).
2018-06-28 13:37:44 -04:00
João Barbosa
c2e4fc84ec bench: Simplify CoinSelection 2018-06-28 14:28:42 +01:00
MarcoFalke
c93c360eec
Merge #13551: tests: Fix incorrect documentation for test case cuckoocache_hit_rate_ok
ea49e06c82 tests: Fix incorrect documentation for test case cuckoocache_hit_rate_ok (practicalswift)

Pull request description:

  Fix incorrect documentation for test case `cuckoocache_hit_rate_ok`.

Tree-SHA512: 2c1138953f077666c0bba784d9f5e5a627403dcd8b81851ca74793f1bf7bb5dc274af7887d51edb6669de1e9354ca7e5dfba80a3ce62f16eaaee6c6fa57b79f5
2018-06-29 02:09:23 +14:00
MarcoFalke
2328039bfc
Merge #13535: [qa] wallet_basic: Specify minimum required amount for listunspent
fa103a5d5e [qa] wallet_basic: Specify minimum required amount for listunspent (MarcoFalke)

Pull request description:

  A value less than that would fail the tests later on anyway:

  ```
  File "./test/functional/wallet_basic.py", line 250, in run_test
      self.nodes[1].sendrawtransaction(signed_raw_tx['hex'])

  test_framework.authproxy.JSONRPCException: bad-txns-in-belowout, value in (1.00) < value out (49.998) (code 16) (-26)

Tree-SHA512: 7e72ad02b5623bc078610da06c34721836822a920a4e85b12a1e0f339e3205cdc11d39763197770e649fb73376f922ff91a8f244b465195e50a6798658e04f80
2018-06-29 02:05:30 +14:00
practicalswift
ea49e06c82 tests: Fix incorrect documentation for test case cuckoocache_hit_rate_ok 2018-06-27 19:04:26 +02:00
practicalswift
962d8eed5b Remove boost dependency (boost/assign/std/vector.hpp) 2018-06-27 17:45:18 +02:00
fanquake
2fca6568f2
depends: Update Qt download url 2018-06-27 23:26:25 +08:00
practicalswift
c6fd0df4ef Fix incorrect tests 2018-06-27 16:59:23 +02:00
MarcoFalke
d96bdd7830
Merge #12882: tests: Make test_bitcoin pass under ThreadSanitzer (clang). Fix lock-order-inversion (potential deadlock).
9fdf05d70c tests: Fix lock-order-inversion (potential deadlock) in DoS_tests. Reported by TSAN. (practicalswift)

Pull request description:

  Fix lock-order-inversion (potential deadlock) in `DoS_tests`. Reported by Clang's TSAN.

  Makes `src/test/test_bitcoin` pass also when compiled with TreadSanitizer (`./configure --with-sanitizers=thread` with `clang`).

Tree-SHA512: 41403bb7b6e26bdf1b830b5699e27c637d522bae1799d2a19ed4b68b21b2555438b42170d8b1189613beb32a69b76a65175d29a83f5f4e493896c3d0d94ae26d
2018-06-28 00:30:07 +14:00
MarcoFalke
c655b2c2df
Merge #13503: Document FreeBSD quirk. Fix FreeBSD build: Use std::min<int>(...) to allow for compilation under certain FreeBSD versions.
629a47a154 Document FreeBSD quirk. Fix FreeBSD build. (practicalswift)

Pull request description:

  * Document FreeBSD quirk.
  * Fix FreeBSD build: Cast to `int` to allow `std::min` to work under FreeBSD.

  Context: https://github.com/bitcoin/bitcoin/pull/9598#issuecomment-398353904

Tree-SHA512: 5ca7a5fa9e1f3efae241b9be64c9b019ec713c11dcc3edaaed383477ea48ac0dc82549ffebbe9069e8c3f6eff30acd6e4542b4aa31d307f022f4f51e5851a82c
2018-06-27 04:39:47 -04:00
Wladimir J. van der Laan
7209fec190
Merge #13532: Log warning when deprecated network name 'tor' is used
9f8c54b1b5 Log warning message when deprecated network name 'tor' is used (e.g. option onlynet=tor) (wodry)

Pull request description:

  As @laanwj mentioned [here](https://github.com/bitcoin/bitcoin/pull/13418#discussion_r197645385), using option `onlynet=tor` is deprecated.

  I think it would be good to give the user a depcreaction warning feedback, so users can switch to `onlynet=onion` so there is a perspective for removing the deprecated `tor` in the future to decrease confusion.

  Currently, users maybe just wonder that they can use a undocumented option, or they are not aware that they use a deprecated option.

  Alternatively for the log warning message, I think at least this deprecetaion should be documented in the source code in a comment for readers of the source code.

Tree-SHA512: f4889793cdd62a0a13353e13994ed50ca7d367fa9da9897ce909f86cf0b0ce6151b3c484c8e514b8ac332949c6bbc71001e06e918248a1089f73756bd4840602
2018-06-27 07:55:38 +02:00
Pieter Wuille
2643fa5086
Merge #12686: Add -ftrapv to CFLAGS and CXXFLAGS when --enable-debug is used. Enable -ftrapv in Travis.
98d842cb52 travis: Build with --enable-debug (x86_64-unknown-linux-gnu) (practicalswift)
94e52d13db Add -ftrapv to DEBUG_CXXFLAGS when --enable-debug is used (practicalswift)

Pull request description:

  By generating a trap for signed overflow on addition, subtraction, multiplication operations in the Travis testing we are more likely to identify problematic code prior to merging it.

Tree-SHA512: 47712da53b4ff451b8f22f16ddc3b53100a09060a3b04cda4b8fbbb74e6f666fc07a9cc7abc64cacb87a0aa3f62dc8e3c91a1a0ed12bf82bb2a5624a5d104389
2018-06-26 17:54:52 -07:00
Pieter Wuille
01f909828d
Merge #13418: Docs: More precise explanation of parameter onlynet
2454a8558a Docs: More precise explanation of parameter "onlynet" (wodry)

Pull request description:

  See issue #13378

Tree-SHA512: d51e81e4ef7fe084c3c9accf3433760fb34c02d149bb2d7006545fecdf68ecd4a5c5bfd0585fd5caff2f034eb96c7da80e85cb04c0ff3edb4c9c65ab56eb2847
2018-06-26 16:59:35 -07:00
Pieter Wuille
f54f3738c8
Merge #13498: [wallet] Fixups from account API deprecation
df10f07db1 [wallet] Don't use accounts when checking balance in sendmany (John Newbery)
e209184101 [wallet] deprecate sendfrom RPC method. (John Newbery)

Pull request description:

  A couple of fixups from the accounts API deprecation PR (#12953):

  - properly deprecate `sendfrom`
  - don't use accounts when calculating balance in `sendmany` (unless the `-deprecatedrpc=accounts` flag is being used)

Tree-SHA512: 1befde055067438c4c3391bbff1aaed0e6249efd708c567db3f1faad40a0f28e64f95e5bad0679ae826d24a0239e4bc8a1c392dc93e2e7502343a7f6b1d1845c
2018-06-26 16:46:49 -07:00
wodry
2454a8558a Docs: More precise explanation of parameter "onlynet" 2018-06-26 21:31:23 +02:00
wodry
4132ad3bfa Show symbol for inbound/outbound in peer table 2018-06-26 19:39:12 +02:00
Pieter Wuille
66b2cf1ccf Use immintrin.h everywhere for intrinsics 2018-06-26 10:11:08 -07:00
Pieter Wuille
4c935e2eee Add SHA256 implementation using using Intel SHA intrinsics 2018-06-26 10:11:08 -07:00
MarcoFalke
ee02debb25
Merge #13531: doc: Clarify that mempool txiter is const_iterator
faca0a8625 doc: Clarify that mempool txiter is const_iterator (MarcoFalke)

Pull request description:

  `iterator` and `const_iterator` are the same type for multi indexed transaction sets, but `const_iterator` should be preferred for documentation purposes.

Tree-SHA512: 83e8af36d15aa1e9fc59b3c2279504fd6f6ea3188dc43e36dec279ee0613ff07947d7143fd112bade7868b0dba59ecab3fd246cbde82e376ef965b646d9f8c4d
2018-06-26 07:05:05 -04:00
Wladimir J. van der Laan
452bb90c71
Merge #13507: RPC: Fix parameter count check for importpubkey
3f72d04e29 Fix parameter count check for importpubkey. (Kristaps Kaupe)

Pull request description:

  Found this while working on #13464. Parameter count check for `importpubkey` was wrong.

Tree-SHA512: aba41b666c6493379f320be5e3e438a6cad1a96429102ff4428c092c48f29c2eead2195792c0b018296f20e1c42eb091dd5b9886c42cecbb1f0d03d5def14705
2018-06-25 20:43:30 +02:00
MarcoFalke
fa87da2f17
qa: Avoid start/stop of the network thread mid-test 2018-06-25 14:06:41 -04:00
MarcoFalke
fa103a5d5e
[qa] wallet_basic: Specify minimum required amount for listunspent 2018-06-25 13:21:59 -04:00
MarcoFalke
baf3a3ab0c
Merge #13536: [qt] coincontrol: Remove unused qt4 workaround
faa2cf685a [qt] coincontrol: Remove unused qt4 workaround (MarcoFalke)

Pull request description:

  This reverts 55eade9d46 since it is no longer required.

Tree-SHA512: ec523d505b410ab72ce9fdee86dfcfe96011472fb386744bb585169724270426ee65da2b527ae47928d604e1f21f54aa2b4b82f9a9d3fbfea1a6516478d81d11
2018-06-25 13:14:49 -04:00
MarcoFalke
b877c39477
Merge #13528: qt: Move BitcoinGUI initializers to class, fix initializer order warning
bb3de15ad8 qt: Move BitcoinGUI initializers to class, fix initializer order warning (Wladimir J. van der Laan)

Pull request description:

  - C++11-ize the code (move initializers to class, change `0` to `nullptr` where appropriate)
  - Make sure `m_wallet_selector` is initialized
  - And fix the following warning:

      bitcoin/src/qt/bitcoingui.cpp:122:5: warning: field 'spinnerFrame' will be initialized after field 'm_wallet_selector_label' [-Wreorder]
          spinnerFrame(0),

Tree-SHA512: b81c8d4ac31b712c8dfaf941ba43b235eb466eb5528535d69d68c26d8706d2a658581513a413050e5dee08b72a4e7fc08bd8936ef5beb052059d2467eaeff84b
2018-06-25 13:12:53 -04:00
Wladimir J. van der Laan
bb3de15ad8 qt: Move BitcoinGUI initializers to class, fix initializer order warning
- C++11-ize the code (move initializers to class, change 0 to `nullptr` where appropriate)
- Make sure `m_wallet_selector` is initialized
- And fix the following warning:

    bitcoin/src/qt/bitcoingui.cpp:122:5⚠️ field 'spinnerFrame' will be initialized after field 'm_wallet_selector_label' [-Wreorder]
        spinnerFrame(0),
2018-06-25 16:57:41 +02:00
MarcoFalke
faa2cf685a
[qt] coincontrol: Remove unused qt4 workaround 2018-06-25 09:32:01 -04:00
Ben Woosley
1fabd59e7e
Break circular dependency: init -> * -> init by extracting shutdown.h
Most includers just wanted to react to pending shutdown.

This isolates access to `fRequestShutdown` and limits access to the shutdown
api functions, including the new `AbortShutdown` for setting it to `false`.

Note I originally called `AbortShutdown` `CancelShutdown` but that name was
already taken by winuser.h
https://travis-ci.org/bitcoin/bitcoin/jobs/386913329

This change also triggered a build error in bench. Fixing it required moving LIBBITCOIN_SERVER after LIBBITCOIN_WALLET in bench_bench_bitcoin_LDADD To make
server definitions in src/net.cpp available to wallet methods in
src/wallet/wallet.cpp. Specifically, solving:

  libbitcoin_wallet.a(libbitcoin_wallet_a-wallet.o): In function `CWalletTx::RelayWalletTransaction(CConnman*)':
  wallet.cpp:(.text+0x3f0e): undefined reference to `CConnman::NodeFullyConnected(CNode const*)'
  collect2: error: ld returned 1 exit status

https://travis-ci.org/bitcoin/bitcoin/jobs/392133581

Need for remaining init.h includes confirmed via a thorough search with a more
specific regex:
  \bInterrupt\(\)|\bShutdown\(\)|\bInitLogging\(\)|\bInitParameterInteraction\(\)|\bAppInitBasicSetup\(\)|\bAppInitParameterInteraction\(\)|\bAppInitSanityChecks\(\)|\bAppInitLockDataDirectory\(\)|\bAppInitMain\(\)|\bSetupServerArgs\(\)|\bLicenseInfo\(\)|g_wallet_init_interface|init.h
2018-06-25 00:08:49 -04:00
Ben Woosley
e62fdfeeab
Drop unused init.h includes
These were entirely unused, as based on successful compilation
and a grep for:
  \bStartShutdown\(\)|\bShutdownRequested\(\)|\bInterrupt\(\)|\bShutdown\(\)|\bInitLogging\(\)|\bInitParameterInteraction\(\)|\bAppInitBasicSetup\(\)|\bAppInitParameterInteraction\(\)|\bAppInitSanityChecks\(\)|\bAppInitLockDataDirectory\(\)|\bAppInitMain\(\)|\bSetupServerArgs\(\)|\bLicenseInfo\(\)|g_wallet_init_interface|init.h
2018-06-25 00:08:00 -04:00
wodry
9f8c54b1b5 Log warning message when deprecated network name 'tor' is used (e.g. option onlynet=tor) 2018-06-24 22:09:01 +02:00
MarcoFalke
faca0a8625
doc: Clarify that mempool txiter is const_iterator 2018-06-24 15:49:09 -04:00
practicalswift
98d842cb52 travis: Build with --enable-debug (x86_64-unknown-linux-gnu) 2018-06-24 20:36:34 +02:00
practicalswift
94e52d13db Add -ftrapv to DEBUG_CXXFLAGS when --enable-debug is used 2018-06-24 20:35:27 +02:00
Pieter Wuille
268400d318 [Refactor] CPU feature detection logic for SHA256 2018-06-24 10:51:07 -07:00
Wladimir J. van der Laan
b1dc39df6e
Merge #13530: bench: Add missing pow.h header
cec84c2f1a bench: Add missing pow.h header (Wladimir J. van der Laan)

Pull request description:

  Fix a build error introduced in #13219.

  ```
  .../bitcoin/src/bench/block_assemble.cpp:42:13:error: use of undeclared identifier 'CheckProofOfWork'
      while (!CheckProofOfWork(block->GetHash(), block->nBits, Params().GetConsensus())) {
  ```

Tree-SHA512: 6ef78011fd7bd82859530b2676ba533b15db6c753cb84a1286b7e26ed6f3d2064769e42900b2479fe6c460411f742e2baed716db5eac06d3bc455e08c290a087
2018-06-24 19:40:55 +02:00
Wladimir J. van der Laan
cec84c2f1a bench: Add missing pow.h header
Fix a build error introduced in #13219.

```
.../bitcoin/src/bench/block_assemble.cpp:42:13:error: use of undeclared identifier 'CheckProofOfWork'
    while (!CheckProofOfWork(block->GetHash(), block->nBits, Params().GetConsensus())) {
```
2018-06-24 19:25:03 +02:00
Wladimir J. van der Laan
868cf431be
Merge #13160: wallet: Unlock spent outputs
fd9b3a7182 test: Output should be unlocked when spent (João Barbosa)
54c3bb4cf8 wallet: Unlock spent outputs (João Barbosa)

Pull request description:

  Fixes #12738.

Tree-SHA512: 2c1694727aea0c658d07566c7d11d7afe91218053f84d568fac97413348fa5a977243d6cdeebd1c6550816489e35cb3a31667c8354d9b350de99f979d641d605
2018-06-24 18:52:30 +02:00
Wladimir J. van der Laan
08516e0e65
Merge #13219: bench: Add block assemble benchmark
fa0fc1bc7e bench: Add block assemble benchmark (MarcoFalke)

Pull request description:

Tree-SHA512: 614da28020b76154f4cb17752df226466d2d7da7a81f31812e10ca5b94987c7f5abab62b2f45a3a958663bd8cbf2191f3f23e497215196ad7a775f0ea8fb6116
2018-06-24 18:49:23 +02:00
Wladimir J. van der Laan
9ab4c2a246
Merge #13496: Test: Harden lint-filenames.sh
927e1150bc Test: Harden lint-filenames.sh (wodry)

Pull request description:

  - This fixes that only files with lower case file name suffix where found before, which contradicted the Regex to find uppercase characters in file names (including suffixes I guess).
  - `--full-name` switch was added to git ls-files, to define that the found file always includes it's full path in the git project.
  - since we know now that the file name includes the full path, we can harden the Regex to exclude the  secp256k1 and univalue sub folders.
  - use backslash line break to make code easier to read and avoid too long line.

Tree-SHA512: 9b55fe4965ae2084112b9f8a81bf9c657756c2cb5004986e7b6102a76adaf62c7d7a53257d9f13c5d8a1c75870b52c744d13830e3edd454a099e810357c914e5
2018-06-24 18:39:27 +02:00