aboutsummaryrefslogtreecommitdiff
path: root/qa/rpc-tests
AgeCommit message (Collapse)Author
2015-05-01Fix comptool send_message call when MAX_INV_SZ reachedSuhas Daftuar
2015-05-01Fix potential race conditions in p2p testing frameworkSuhas Daftuar
Previously, each NodeConnCB had its own lock to synchronize data structures used by the testing thread and the networking thread, and NodeConn provided a separate additional lock for synchronizing access to each send buffer. This commit replaces those locks with a single global lock (mininode_lock) that we use to synchronize access to all data structures shared by the two threads. Updates comptool and maxblocksinflight to use the new synchronization semantics, eliminating previous race conditions within comptool, and re-enables invalidblockrequest.py in travis.
2015-04-30Fix mininode disconnections to work with selectSuhas Daftuar
2015-04-30Merge pull request #5981Wladimir J. van der Laan
2703412 Fix default binary in p2p tests to use environment variable (Suhas Daftuar) 29bff0e Add some travis debugging for python scripts (Suhas Daftuar) d76412b Add script manipulation tools for use in mininode testing framework (Suhas Daftuar) b93974c Add comparison tool test runner, built on mininode (Suhas Daftuar) 6c1d1ba Python p2p testing framework (Suhas Daftuar)
2015-04-29Fix default binary in p2p tests to use environment variableSuhas Daftuar
2015-04-29Merge pull request #6032Wladimir J. van der Laan
688da79 QA: add --noshutdown option to prevent stopping nodes (dexX7) 2eadeb2 QA: stop nodes after RPC tests, even with --nocleanup (dexX7)
2015-04-28Add some travis debugging for python scriptsSuhas Daftuar
Adds printing to the console before/after calls to bitcoin-cli -rpcwait, if the PYTHON_DEBUG environment variable is initialized.
2015-04-28Add script manipulation tools for use in mininode testing frameworkSuhas Daftuar
script.py is modified from the code in python-bitcoinlib, and provides tools for manipulating and creating CScript objects. bignum.py is a dependency for script.py script_test.py is an example test that uses the script tools for running a test that compares the behavior of two nodes, in a comptool- style test, for each of the test cases in the bitcoin unit test script files, script_valid.json and script_invalid.json. (This test is very slow to run, but is a proof of concept for how we can write tests to compare consensus-critical behavior between different versions of bitcoind.) bipdersig-p2p.py is another example test in the comptool framework, which tests deployment of BIP DERSIG for a single node. It uses the script.py tools for manipulating signatures to be non-DER compliant.
2015-04-28Add comparison tool test runner, built on mininodeSuhas Daftuar
comptool.py creates a tool for running a test suite on top of the mininode p2p framework. It supports two types of tests: those for which we expect certain behavior (acceptance or rejection of a block or transaction) and those for which we are just comparing that the behavior of 2 or more nodes is the same. blockstore.py defines BlockStore and TxStore, which provide db-backed maps between block/tx hashes and the corresponding block or tx. blocktools.py defines utility functions for creating and manipulating blocks and transactions. invalidblockrequest.py is an example test in the comptool framework, which tests the behavior of a single node when sent two different types of invalid blocks (a block with a duplicated transaction and a block with a bad coinbase value).
2015-04-28Python p2p testing frameworkSuhas Daftuar
mininode.py provides a framework for connecting to a bitcoin node over the p2p network. NodeConn is the main object that manages connectivity to a node and provides callbacks; the interface for those callbacks is defined by NodeConnCB. Defined also are all data structures from bitcoin core that pass on the network (CBlock, CTransaction, etc), along with de-/serialization functions. maxblocksinflight.py is an example test using this framework that tests whether a node is limiting the maximum number of in-flight block requests. This also adds support to util.py for specifying the binary to use when starting nodes (for tests that compare the behavior of different bitcoind versions), and adds maxblocksinflight.py to the pull tester.
2015-04-28Merge pull request #5199Wladimir J. van der Laan
1ec900a Remove broken+useless lock/unlock log prints (Matt Corallo) 352ed22 Add merkle blocks test (Matt Corallo) 59ed61b Add RPC call to generate and verify merkle blocks (Matt Corallo) 30da90d Add CMerkleBlock constructor for tx set + block and an empty one (Matt Corallo)
2015-04-24Merge pull request #6036Wladimir J. van der Laan
f89b092 add rpc test for listunspents support for zero value txouts (Jonas Schnelli) 219953c Show zero value txouts in listunspent. (Gregory Maxwell)
2015-04-23Add merkle blocks testMatt Corallo
2015-04-23QA: add --noshutdown option to prevent stopping nodesdexX7
With `--noshutdown`, the nodes are not stopped explicitly. `--noshutdown` implies `--nocleanup`, to prevent removing datadirs, which are still in use.
2015-04-22Add block pruning functionalitymrbandrews
This adds a -prune=N option to bitcoind, which if set to N>0 will enable block file pruning. When pruning is enabled, block and undo files will be deleted to try to keep total space used by those files to below the prune target (N, in MB) specified by the user, subject to some constraints: - The last 288 blocks on the main chain are always kept (MIN_BLOCKS_TO_KEEP), - N must be at least 550MB (chosen as a value for the target that could reasonably be met, with some assumptions about block sizes, orphan rates, etc; see comment in main.h), - No blocks are pruned until chainActive is at least 100,000 blocks long (on mainnet; defined separately for mainnet, testnet, and regtest in chainparams as nPruneAfterHeight). This unsets NODE_NETWORK if pruning is enabled. Also included is an RPC test for pruning (pruning.py). Thanks to @rdponticelli for earlier work on this feature; this is based in part off that work.
2015-04-21add rpc test for listunspents support for zero value txoutsJonas Schnelli
2015-04-20rpc-tests: Add proxy testWladimir J. van der Laan
Add test for -proxy, -onion and -proxyrandomize.
2015-04-20QA: stop nodes after RPC tests, even with --nocleanupdexX7
`--nocleanup` should provide a way to preserve test data, but should not have an impact on whether nodes are to be stopped after the test execution. In particular, when currently running RPC tests with `--nocleanup`, then it may result in several active `bitcoind` processes, which are not terminated properly.
2015-04-14Fix CheckBlockIndex for reindex.mrbandrews
Some tests in CheckBlockIndex require chainActive.Tip(), but when reindexing, chainActive has not been set on the first call to CheckBlockIndex. reindex.py starts a node, mines 3 blocks, stops, and reindexes with CheckBlockIndex enabled.
2015-04-09Fix travis after merging #5957Wladimir J. van der Laan
New wallet tests have been added in the meantime and need to be updated to use `generate` instead of `setgenerate`.
2015-04-09Merge pull request #5957Wladimir J. van der Laan
e2edf95 Bugfix: make CreateNewBlock return pindexPrev (Pieter Wuille) 6b04508 Introduce separate 'generate' RPC call (Pieter Wuille) 0df67f1 Simplify hash loop code (Pieter Wuille)
2015-04-01Introduce separate 'generate' RPC callPieter Wuille
2015-04-01add -walletbroadcast=0 rpc testJonas Schnelli
2015-03-24Regression test for ResendWalletTransactionsGavin Andresen
Adds a regression test for the wallet's ResendWalletTransactions function, which uses a new, hidden RPC command "resendwallettransactions." I refactored main's Broadcast signal so it is passed the best-block time, which let me remove a global variable shared between main.cpp and the wallet (nTimeBestReceived). I also manually tested the "rebroadcast unconfirmed every half hour or so" functionality by: 1. Running bitcoind -connect=0.0.0.0:8333 2. Creating a couple of send-to-self transactions 3. Connect to a peer using -addnode 4. Waited a while, monitoring debug.log, until I see: ```2015-03-23 18:48:10 ResendWalletTransactions: rebroadcast 2 unconfirmed transactions``` One last change: don't bother putting ResendWalletTransactions messages in debug.log unless unconfirmed transactions were actually rebroadcast.
2015-03-24Merge pull request #5890Wladimir J. van der Laan
cd3d67c Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates (Alex Morcos)
2015-03-16Merge pull request #5831Wladimir J. van der Laan
1d9b378 qa/rpc-tests/wallet: Tests for sendmany (Luke Dashjr) 40a7573 rpcwallet/sendmany: Just take an array of addresses to subtract fees from, rather than an Object with all values being identical (Luke Dashjr) 292623a Subtract fee from amount (Cozz Lovan) 90a43c1 [Qt] Code-movement-only: Format confirmation message in sendcoinsdialog (Cozz Lovan)
2015-03-13Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidatesAlex Morcos
2015-03-13qa/rpc-tests/wallet: Tests for sendmanyLuke Dashjr
2015-03-13Subtract fee from amountCozz Lovan
Fixes #2724 and #1570. Adds the automatically-subtract-the-fee-from-the-amount-and-send-whats-left feature to the GUI and RPC (sendtoaddress,sendmany).
2015-03-12add RPC test for InvalidateBlockAlex Morcos
2015-02-10Merge #5548: [REST] add /rest/chaininfosWladimir J. van der Laan
2c0f901 [REST] rest/chaininfos add documentation (Jonas Schnelli) 59582c8 [REST] add /rest/chaininfos (Jonas Schnelli)
2015-02-04Fix getblocktemplate_proposals test by mining one blockSuhas Daftuar
This triggers the tested node to no longer be in initial download, allowing the call to getblocktemplate() to succeed.
2015-02-03Merge pull request #5713Wladimir J. van der Laan
bf6cdeb Increase coverage of DERSIG edge cases (Pieter Wuille) 819bcf9 Add RPC test for DERSIG BIP switchover logic (Pieter Wuille) 5a47811 BIP66 changeover logic (Pieter Wuille) 092e9fe Example unit tests from BIP66 (Pieter Wuille) 80ad135 Change IsDERSignature to BIP66 implementation (Pieter Wuille)
2015-02-01Add RPC test for DERSIG BIP switchover logicPieter Wuille
2015-01-31Changed pronouns for correctness and inclusivitybikinibabe
2015-01-31Fix README link from util.sh -> util.py.Matt Bogosian
2015-01-17[QA] fix httpbasic keep-alive testJonas Schnelli
2015-01-14improve tests for #5655Jonas Schnelli
2015-01-14fix tests for #5655Wladimir J. van der Laan
2015-01-08Merge pull request #5612Wladimir J. van der Laan
84d9199 [QA] fix zapwallettxes test (Jonas Schnelli)
2015-01-07[QA] fix zapwallettxes testJonas Schnelli
- remove shell test script and add a python equivalent
2015-01-07Fix smartfees test for change to relay policySuhas Daftuar
2014-12-29[REST] add /rest/chaininfosJonas Schnelli
2014-12-25RPC test for immature balanceJonas Schnelli
2014-12-19Merge pull request #5470Wladimir J. van der Laan
78253fc Remove references to X11 licence (Michael Ford)
2014-12-17[QA] fix httpbasics RPC test typoJonas Schnelli
2014-12-16Remove references to X11 licenceMichael Ford
2014-12-12Add /rest/headersPieter Wuille
2014-12-11Merge pull request #5267Wladimir J. van der Laan
34318d7 RPC-test based on invalidateblock for mempool coinbase spends (Gavin Andresen) 7fd6219 Make CTxMemPool::remove more effecient by avoiding recursion (Matt Corallo) b7b4318 Make CTxMemPool::check more thourough by using CheckInputs (Matt Corallo) 723d12c Remove txn which are invalidated by coinbase maturity during reorg (Matt Corallo) 868d041 Remove coinbase-dependant transactions during reorg. (Matt Corallo)
2014-12-09[REST] /rest/block response with full tx detailsJonas Schnelli
- rest block request returns full unfolded tx details - /rest/block/notxdetails/<HASH> returns block where transactions are only represented by its hash