aboutsummaryrefslogtreecommitdiff
path: root/test/functional
AgeCommit message (Collapse)Author
2018-04-16qa: Add test for orphan handlingMarcoFalke
2018-04-16Merge #12996: tests: Remove redundant bytes(…) callsMarcoFalke
9db48c5634 tests: Remove redundant bytes² (practicalswift) Pull request description: This is a follow-up to #12993. As @jnewbery noted `bytes()` is idempotent. Tree-SHA512: 0eb25e0c2c46f9abaac30f964c5eb422bece1414c840a717d86794424294cb19d995a6db7c8df2a2f4ec84776b05274a637f2c111738f397051f510e57184752
2018-04-16tests: Remove redundant bytes²practicalswift
2018-04-16Minor Python cleanups to make flake8 pass with the new rules enabledpracticalswift
2018-04-16tests: Remove compatibility code not needed now when we're on Python 3practicalswift
2018-04-11speed up wallet_hd.py and clarify/augment checksGregory Sanders
2018-04-11Merge #12892: [wallet] [rpc] introduce 'label' API for walletWladimir J. van der Laan
41ba061 [docs] Add release notes for wallet 'label' API. (John Newbery) 189e0ef [wallet] [rpc] introduce 'label' API for wallet (Wladimir J. van der Laan) Pull request description: Add label API to wallet RPC. This is one step towards #3816 ("Remove bolt-on account system") although it doesn't actually remove anything yet. These initially mirror the account functions, with the following differences: - These functions aren't DEPRECATED in the help - Help mentions 'label' instead of accounts. In the language used, labels are associated with addresses, instead of addresses associated with labels. (unlike with accounts.) - Labels have no balance - No balances in `listlabels` - `listlabels` has no minconf or watchonly argument - Like in the GUI, labels can be set on any address, not just receiving addreses - Unlike accounts, labels can be deleted. Being unable to delete them is a common annoyance (see #1231). Currently only by reassigning all addresses using `setlabel`, but an explicit call `deletelabel` which assigns all address to the default label may make sense. Tree-SHA512: 45cc313c68ad529ce3a15c02181d2ab0083a7e14fe824e2cde34972713fecce512e3d4b9aa46db5355f2baa857c44b234d4fe9709225bc23c7ebbc0e03febbf5
2018-04-10[wallet] [rpc] introduce 'label' API for walletWladimir J. van der Laan
Add label API to wallet RPC. This is one step towards #3816 ("Remove bolt-on account system") although it doesn't actually remove anything yet. These initially mirror the account functions, with the following differences: - These functions aren't DEPRECATED in the help - Help mentions 'label' instead of accounts. In the language used, labels are associated with addresses, instead of addresses associated with labels. (unlike with accounts.) - Labels have no balance - No balances in `listlabels` - `listlabels` has no minconf or watchonly argument - Like in the GUI, labels can be set on any address, not just receiving addreses - Unlike accounts, labels can be deleted. Being unable to delete them is a common annoyance (see #1231). Currently only by reassigning all addresses using `setlabel`, but an explicit call `deletelabel` which assigns all address to the default label may make sense. Thanks to Pierre Rochard for test fixes.
2018-04-10Merge #12749: [wallet] feebumper: discard change outputs below discard rateWladimir J. van der Laan
f526046 adapt bumpfee change discard test to be more strict and add note on p2sh discrep (Gregory Sanders) 5805d6f feebumper: discard change outputs below discard rate (Gregory Sanders) Pull request description: The "discard rate" is the concept we use to ensure the wallet isnt creating not so useful just-above-relay dust. Outside of bumpfee previous to this PR, and manually creating such an output, the wallet will never make change outputs of that size, preferring to send them to fees instead. "Worst case" for the user is that users pay a slightly higher feerate than they were expecting, which is already a possibility with relay dust. Tree-SHA512: dd69351810dc1709437602e7db1be46e4e905ccd8e16d03952de8b4c1fdbf9cb7e6c99968930896baf6b5c7cb005a03ec0506a2669d22e21e32982e60329606b
2018-04-09Merge #12902: [qa] Handle potential cookie race when starting nodeMarcoFalke
75d0e4c544 [qa] Delete cookie file before starting node (Suhas Daftuar) Pull request description: When a node is restarted during a test after an unclean shutdown (such as with -dbcrashratio), it's possible an old cookie file was left behind. This can cause a race condition when restarting the node, where the test framework might try to connect using credentials from the old cookie file, just as the node will generate new credentials and overwrite the old file. Delete any such cookie file if present prior to startup. Tree-SHA512: ae1e8bf8fd20e07c32b0715025693bb28b0e3dd34f328cae4346abf579b0c97b5db1c02782e1c46b7a3b6058d268b6d46b668e847658a6eed0be857ffb0d65dc
2018-04-09Merge #12917: qa: Windows fixups for functional testsMarcoFalke
fab9095d40 qa: Windows fixups for functional tests (MarcoFalke) Pull request description: Just two minor fixups to have less errors when the tests run on native windows. * Strip whitespace from lines when reading from a notification file * Instead of clumsily creating a file with weird permissions, just create a folder for the same effect in `mempool_persist.py` Tree-SHA512: 48a8b439f14ab9b44c5cd228cd03105e8613e703e3c2951cdf724931bc95172a9ad9bfe69fc23e73dd91b058c1352263c0ac6e8de2ceb0ebf804c8ff52bba394
2018-04-09[qa] Delete cookie file before starting nodeSuhas Daftuar
If a cookie file exists in a datadir prior to node startup, it must have been leftover from a prior unclean shutdown. As bitcoind will overwrite it anyway, delete it before starting up to prevent the test framework from inadvertently trying to connect using stale credentials.
2018-04-09Merge #11851: scripted-diff: Rename wallet database classesWladimir J. van der Laan
9b0f0c5 Add m_ prefix to WalletBatch::m_batch (Russell Yanofsky) 398c6f0 Update walletdb comment after renaming. (Russell Yanofsky) ea23945 scripted-diff: Rename wallet database classes (Russell Yanofsky) Pull request description: Scripted diff to rename some wallet classes. Motivated by discussion in https://github.com/bitcoin/bitcoin/pull/11687#discussion_r155354119 | Current | New | | ---------------- | ------------------- | | CDBEnv | BerkeleyEnvironment | | CDB | BerkeleyBatch | | CWalletDBWrapper | WalletDatabase | | CWalletDB | WalletBatch | Berkeley\* classes are intended to contain BDB specific code, while Wallet\* classes are intended to be more backend-agnostic. Also renamed associated variables: | Current | New | | ------------------- | --------------- | | dbw | database | | pwalletdb | batch | | pwalletdbEncryption | encrypted_batch | Tree-SHA512: 372f2e24b2deb59d4792b5ed578aaf0cce51b6db41c400bef5d0c2cd7833e62ae4d4afa0f6000268d52e15b20f737c5a55f1cecf7768556a782fd8cd6fe051d9
2018-04-09test: Assert on correct variableKarl-Johan Alm
2018-04-08Merge #12856: Tests: Add Metaclass for BitcoinTestFrameworkWladimir J. van der Laan
c9cce0a Tests: Add Metaclass for BitcoinTestFramework (Will Ayd) Pull request description: BitcoinTestFramework instructs developers in its docstring to override `set_test_params` and `run_test` in subclasses while being sure NOT to override `__init__` and `main` . This change adds a metaclass to ensure that developers adhere to that protocol, raising a ``TypeError`` in instances where they have not. closes #12835 Tree-SHA512: 5a47a7ead1f18361138cad4374747c4a8f29d25506f7b2c2a8c1c966a0b65e5ccf7317f9a078df8680fdab5d3fb71fee46a159c9f381878a3683c1e9f874abbe
2018-04-08Merge #12905: [rpcwallet] Clamp walletpassphrase value at 100M secondsMarcoFalke
2b2b96cd45 Use std::bind instead of boost::bind to re-lock the wallet (Suhas Daftuar) 662d19ff72 [rpcwallet] Clamp walletpassphrase value at 100M seconds (Suhas Daftuar) Pull request description: Larger values seem to trigger a bug on macos+libevent (resulting in the rpc server stopping). Tree-SHA512: 890f3b641f6c586e2f8f629a9d23bca6ceb8b237b285561aad488cb7adf941a21177d3129d0c2b8293c0a673cd8e401957dbe2b6b3b7c8c4e991bb411d260102
2018-04-08qa: Windows fixups for functional testsMarcoFalke
2018-04-08Merge #12904: [qa] Ensure bitcoind processes are cleaned up when tests endWladimir J. van der Laan
e36a0c0 [qa] Ensure bitcoind processes are cleaned up when tests end (Suhas Daftuar) Pull request description: When tests fail (such as due to a bug in the test, race condition, etc), it's possible that we could follow code paths that bypass our normal node shutdown that occurs in `TestNode.stop_node`. Add a destructor to `TestNode` that cleans this up. Tree-SHA512: 72e04bc21462ebd0cb346fd1fe0540da454acfbad41923a0b06ea2317e9045b68e58f9adb02d8200891aca89a9d03a022eb72282aeb31a3b3afe7c6843a4b450
2018-04-08[qa] Ensure bitcoind processes are cleaned up when tests endSuhas Daftuar
2018-04-08[rpcwallet] Clamp walletpassphrase value at 100M secondsSuhas Daftuar
Larger values seem to trigger a bug on macos+libevent (resulting in the rpc server stopping).
2018-04-07scripted-diff: Rename wallet database classesRussell Yanofsky
-BEGIN VERIFY SCRIPT- sed -i 's/\<CWalletDBWrapper\>/BerkeleyDatabase/g' src/wallet/db.h src/wallet/db.cpp sed -i '/statuses/i/** Backend-agnostic database type. */\nusing WalletDatabase = BerkeleyDatabase\;\n' src/wallet/walletdb.h ren() { git grep -l "\<$1\>" 'src/*.cpp' 'src/*.h' ':(exclude)*dbwrapper*' test | xargs sed -i "s:\<$1\>:$2:g"; } ren CDBEnv BerkeleyEnvironment ren CDB BerkeleyBatch ren CWalletDBWrapper WalletDatabase ren CWalletDB WalletBatch ren dbw database ren m_dbw m_database ren walletdb batch ren pwalletdb batch ren pwalletdbIn batch_in ren wallet/batch.h wallet/walletdb.h ren pwalletdbEncryption encrypted_batch -END VERIFY SCRIPT-
2018-04-07Merge #12849: Tests: Add logging in loops in p2p_sendhears.pyMarcoFalke
8dd547d82b Adding logging for loop iteration level in p2p_sendheaders.py (ccdle12) Pull request description: PR for #12453 New contributor looking at mainly the 'good first issues'. From my understanding of the issue: * Track the iteration level of loop when test fails in Travis CI Further clarification on the issue would be greatly appreciated to narrow down what can be fixed or updated. Tree-SHA512: 228524aad54c09979d990a0fc6818e13a11e1ab5e78b606b892e897bba7b1e09bf25447feb631049e45ac017eeb61fbf1c1f11e8bd5103648f976a05099ba9f9
2018-04-07Merge #12766: [Tests] Tidy up REST interface functional testsWladimir J. van der Laan
55efc1f [tests] simplify binary and hex response parsing in interface_rest.py (Roman Zeyde) ade5964 [tests] only use 2 nodes in interface_rest.py (John Newbery) ad00fbe [tests] refactor interface_rest.py to avoid code repetition (John Newbery) 7a3181a [tests] Make json request building more consistent in interface_rest.py (John Newbery) 3fd4490 [tests] improve logging and documentation in interface_rest.py (John Newbery) abf190e [tests] fix flake8 warnings in interface_rest.py test (John Newbery) Pull request description: Following the comment at https://github.com/bitcoin/bitcoin/pull/12717#pullrequestreview-106189117. Tree-SHA512: b55560f0d8f3069584f5a2398285483a0a23514b2b2bd2c1ced2db1cb30dc24f60f720d0fa4de30259f7918d3178d94680ae9321649544d1d04d687a2e672559
2018-04-04Tests: Add Metaclass for BitcoinTestFrameworkWill Ayd
BitcoinTestFramework instructs developers in its docstring to override `set_test_params` and `run_test` in subclasses while being sure NOT to override `__init__` and `main` . This change adds a metaclass to ensure that developers adhere to that protocol, raising a ``TypeError`` in instances where they have not. closes #12835
2018-04-04Merge #11818: I accidentally [deliberately] killed it [the ↵MarcoFalke
ComparisonTestFramework] 9c92c8c827 [tests] Remove Comparison Test Framework (John Newbery) e80c640d78 [tests] Remove bip9-softforks.py (John Newbery) Pull request description: Builds on #11772, #11773 and #11817. Please review those PRs first. Final step in #10603. - First commit removes bip9-softforks.py. bip9-sofforks.py was intended to be a generic test for versionbits deployments. However, it only tests CSV activation and was not updated to test segwit activation. CSV activation is tested by bip68-112-113-p2p.py, so this test is duplicated effort. Rather than try to update it to use the BitcoinTestFramework, just remove it. (see https://github.com/btcdrak/bitcoin/pull/8 for previous discussion around the redundancy of bip9-softforks.py) - Second commit removes the now unused BitcoinComparisonFramework class and the comptool and blockstore modules. Tree-SHA512: 4bb7196d521048b3b8ba95c87dde73005a1ac73d29ccbb869f11ce9a71089686e7eacd7335337853041dfbd3a5b110172b105adbada58779814d4db22b1376f5
2018-04-04Merge #12853: qa: Match full plain text by defaultMarcoFalke
faace13868 qa: Match full plain text by default (MarcoFalke) Pull request description: Instead of escaping all full plain text error strings, just compare their strings by default. Tree-SHA512: 42e28f55105eb947ac6af6ce4056f0ec0f701d85f1c2a38b35ab777bbdf2296bdb79639c345621b8adc03a98b28c7630ded9a67b8b04a48e2c3a49d598ecdcd7
2018-04-03[tests] simplify binary and hex response parsing in interface_rest.pyRoman Zeyde
We use assert_greater_than_or_equal(), since the hex response contains an extra b'\n' traling byte.
2018-04-03[tests] only use 2 nodes in interface_rest.pyJohn Newbery
2018-04-03[tests] refactor interface_rest.py to avoid code repetitionJohn Newbery
Also refactor txout index parsing and formatting.
2018-04-03[tests] Make json request building more consistent in interface_rest.pyJohn Newbery
2018-04-03[tests] improve logging and documentation in interface_rest.pyJohn Newbery
2018-04-03[tests] fix flake8 warnings in interface_rest.py testJohn Newbery
2018-04-02Adding logging for loop iteration level in p2p_sendheaders.pyccdle12
Changing logs to debug level and format of statment to j == ... Updating debug statements to include comments when checking for iteration level of i and j Removing comments above log prints in Part 3 Removing unwanted file Added log prints in loops in p2p_sendheaders
2018-04-02[tests] Stop feature_block.py from blowing up memory.John Newbery
The new P2PDataStore class was sending full blocks in headers messages, which meant that calls to send_blocks_and_test() would blow up memory if called with a large number of blocks. Fix that by only sending headers in headers messages.
2018-04-02[tests] Remove Comparison Test FrameworkJohn Newbery
2018-04-02[tests] Remove bip9-softforks.pyJohn Newbery
bip9-sofforks.py was intended to be a generic test for versionbits deployments. However, it only tests CSV activation and was not updated to test segwit activation. CSV activation is tested by bip68-112-113-p2p.py, so this test is duplicated effort. Rather than try to update it to use the BitcoinTestFramework, just remove it.
2018-04-02Merge #11742: rpc: Add testmempoolacceptWladimir J. van der Laan
b55555d rpc: Add testmempoolaccept (MarcoFalke) Pull request description: To check if a single raw transaction makes it into the current transaction pool, one had to call `sendrawtransaction`. However, on success, this adds the transaction to the mempool with no easy way to undo. The call `testmempoolaccept` is introduced to provide a way to solely check the result without changing the mempool state. Tree-SHA512: 5afd9311190135cee8fc1f229c7d39bf893f1028f29e28d34f70df820198ff97b4bf86b41cbbd6e6c36a5c30073cefa92d541c74a4939c7a2a6fa283dfd41b63
2018-04-01Merge #12284: Remove assigned but never used local variables. Enable Travis ↵MarcoFalke
checking for unused local variables. ea04bf7862 Enable flake8 warning F841 ("local variable 'foo' is assigned to but never used") (practicalswift) 169f3e8637 Remove assigned but never used local variables (practicalswift) Pull request description: Remove assigned but never used local variables. Enable Travis checking for unused local variables. Tree-SHA512: d6052ec9044c5d1f03d874ea3c8addd5a156779213ef9200f89d3ae53230f2fd1691aff405c3dae14178e5ef09912c4432e92f606ef4a5220ed9daa140cdee81
2018-04-01qa: Match full plain text by defaultMarcoFalke
2018-04-01Merge #12843: [tests] Test starting bitcoind with -h and -versionMarcoFalke
63048ec73d [tests] Test starting bitcoind with -h and -version (John Newbery) Pull request description: Test that starting bitcoind/bitcoin-qt with `-h` and `-version` works as expected. Prompted by https://github.com/bitcoin/bitcoin/pull/10762#commitcomment-28345993, which is a nullpointer dereference triggered by starting bitcoin-qt with `-h`. On master, this test passes when run over bitcoind, but fails when running over bitcoin-qt. I used xvfb as a virtual frame buffer to test: ``` BITCOIND=/home/ubuntu/bitcoin/src/qt/bitcoin-qt xvfb-run ./feature_help.py --nocleanup 2018-03-30T17:09:37.767000Z TestFramework (INFO): Initializing test directory /tmp/user/1000/testdi4dre13 2018-03-30T17:09:37.767000Z TestFramework (INFO): Start bitcoin with -h for help text 2018-03-30T17:09:37.841000Z TestFramework (ERROR): Assertion failed Traceback (most recent call last): File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 126, in main self.run_test() File "./feature_help.py", line 25, in run_test assert_equal(ret_code, 0) File "/home/ubuntu/bitcoin/test/functional/test_framework/util.py", line 39, in assert_equal raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args)) AssertionError: not(-11 == 0) 2018-03-30T17:09:37.842000Z TestFramework (INFO): Stopping nodes Traceback (most recent call last): File "./feature_help.py", line 42, in <module> HelpTest().main() File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 149, in main self.stop_nodes() File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 273, in stop_nodes node.stop_node() File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 141, in stop_node self.stop() File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 87, in __getattr__ assert self.rpc_connected and self.rpc is not None, "Error: no RPC connection" AssertionError: Error: no RPC connection ``` Passes for bitcoind and bitcoin-qt when run on #12836. Longer term, we should consider running functional tests over bitcoin-qt in one of the Travis jobs. Tree-SHA512: 0c2f40f3d5f0e78c3a1b07dbee8fd383eebab27ed0bf2a98a5b9cc66613dbd7b70e363c56163a37e02f68ae7ff7b3ae1769705d0e110ca68a00f8693315730a4
2018-04-01Merge #11817: [tests] Change feature_csv_activation.py to use ↵MarcoFalke
BitcoinTestFramework 12982682a6 [tests] Change feature_csv_activation.py to use BitcoinTestFramework (John Newbery) db7ffb9d1b [tests] Move utility functions in feature_csv_activation.py out of class. (John Newbery) 0842edf9ee [tests] Remove nested loops from feature_csv_activation.py (John Newbery) 2e511d5424 [tests] improve logging in feature_csv_activation.py (John Newbery) 6f7f5bc002 [tests] fix flake8 nits in feature_csv_activation.py (John Newbery) Pull request description: Next step in #10603. - first four commits tidy up bip68-112-113-p2p.py - fifth commit removes usage of ComparisonTestFramework Tree-SHA512: 34466be12280096ad92ac842f9c594ae40c19be9b4edc73c1e37964d03d55f4e75b80cea50c9940404096effc23705671503a883a7b7773b5866a29f653ba710
2018-03-30[tests] Test starting bitcoind with -h and -versionJohn Newbery
2018-03-30Merge #12804: [tests] Fix intermittent rpc_net.py failure.MarcoFalke
5a67c0524e [tests] Fix intermittent rpc_net.py failure. (John Newbery) Pull request description: rpc_net.py would intermittently fail on Travis, probably due to assuming that two consecutive RPC calls were atomic. Fix this by trying the test up to three times and only failing if all three attempts fail. fixes #11778 Tree-SHA512: f2f5047e05114ad2110377e6221ce057680c240952971fb33863834587d2250896c6b697ba27eef739cd0ab23faf47dfae8cafadc9833cbfab5a6f7e36dae5e2
2018-03-30Merge #12810: [Tests] Fix a typo at assert_start_raises_init_error() and use ↵MarcoFalke
specific exception for initialization error 8394300859 [Tests] fix a typo in TestNode.assert_start_raises_init_error() (Roman Zeyde) Pull request description: `self.wait_util_stopped()` should be `self.wait_until_stopped()`. Also, use a specific Exception subclass for indicating node failure to start (instead of using `AssetionError` and an `except Exception` clause). Following https://travis-ci.org/bitcoin/bitcoin/jobs/359066226#L2726 and depending on #12806 (which fixes the root cause of the Travis test failure). Tree-SHA512: 7bd5a95586a412472ef9dffdb086789d7275ddaf862724e21cebb3418d0c97e6d89b4d1a58375e42114060d028403d6eab89e3a1e9a833ffe8dadf3439ab1fe2
2018-03-29Remove assigned but never used local variablespracticalswift
2018-03-29Merge #11773: [tests] Change feature_block.py to use BitcoinTestFrameworkWladimir J. van der Laan
265d7c4 [tests] Improve assert message when wait_until() fails (John Newbery) ebf053a [tests] Change feature_block.py to use BitcoinTestFramework (John Newbery) fc02c12 [tests] Add logging to feature_block.py (John Newbery) 3898c4f [tests] Tidy up feature_block.py (John Newbery) 5cd01d2 [tests] Fix flake8 warnings in feature_block.py (John Newbery) Pull request description: Next step in #10603. - first three commits tidy up feature_block.py - fourth commit removes usage of ComparisonTestFramework Longer term, it would be better to separate net_processing testing from validation testing, but I think this is still a useful PR, since it moves us away from the comparison test framework. Tree-SHA512: d0bb3ad22ad0aa1222877f4212bff075f9ce358e99c69c26d9913e4b346d931b8380e744434a9f6f37812c352cdaa75791691565bfeb18afcb619c06c6ca32a3
2018-03-29Merge #12790: [Tests] Use blockmaxweight where tests previously had blockmaxsizeWladimir J. van der Laan
b466f6b [Tests] Use blockmaxweight where tests previously had blockmaxsize (Conor Scott) Pull request description: Fix for #12768: `-blockmaxsize` has been removed, but some tests were using this feature, so update with `-blockmaxweight` Tree-SHA512: 5f6d643daee43366c6e61f4154a3920efb4cef1455e483575cf19b0f95bc6e56668360c1562fa18f85b336e48f64e482bd29b1ecb227d7c78c4344d7f5d32ed3
2018-03-28adapt bumpfee change discard test to be more strict and add note on p2sh discrepGregory Sanders
2018-03-28[tests] Fix intermittent rpc_net.py failure.John Newbery
rpc_net.py would intermittently fail on Travis, probably due to assuming that two consecutive RPC calls were atomic. Fix this by only testing that amounts are bounded above and below rather than equal.
2018-03-28[Tests] fix a typo in TestNode.assert_start_raises_init_error()Roman Zeyde
Also, use specific exception for testing TestNode initialization failure.