Branch: refs/heads/master Home: https://github.com/btcsuite/btcd Commit: b86df0ba9194659fddf1e4e8930b67b5791eff49 https://github.com/btcsuite/btcd/commit/b86df0ba9194659fddf1e4e8930b67b5791eff49 Author: Olaoluwa Osuntokun <laol...@gmail.com> Date: 2016-08-19 (Fri, 19 Aug 2016)
Changed paths: A rpctest/README.md A rpctest/blockgen.go A rpctest/doc.go A rpctest/memwallet.go A rpctest/node.go A rpctest/rpc_harness.go A rpctest/rpc_harness_test.go A rpctest/utils.go Log Message: ----------- rpctest: create new rpctest package This commit adds a new package (rpctest) which provides functionality for writing automated black box tests to exercise the RPC interface. An instance of a rpctest consists of an active btcd process running in (typically) --simnet mode, a btcrpcclient instance connected to said node, and finally an embedded in-memory wallet instance (the memWallet) which manages any created coinbase outputs created by the mining btcd node. As part of the SetUp process for an RPC test, a test author can optionally opt to have a test blockchain created. The second argument to SetUp dictates the number of mature coinbase outputs desired. The btcd process will then be directed to generate a test chain of length: 100 + numMatureOutputs. The embedded memWallet instance acts as a minimal, simple wallet for each Harness instance. The memWallet itself is a BIP 32 HD wallet capable of creating new addresses, creating fully signed transactions, creating+broadcasting a transaction paying to an arbitrary set of outputs, and querying the currently confirmed balance. In order to test various scenarios of blocks containing arbitrary transactions, one can use the Generate rpc call via the exposed btcrpcclient connected to the active btcd node. Additionally, the Harness also exposes a secondary block generation API allowing callers to create blocks with a set of hand-selected transactions, and an arbitrary BlockVersion or Timestamp. After execution of test logic TearDown should be called, allowing the test instance to clean up created temporary directories, and shut down the running processes. Running multiple concurrent rpctest.Harness instances is supported in order to allow for test authors to exercise complex scenarios. As a result, the primary interface to create, and initialize an rpctest.Harness instance is concurrent safe, with shared package level private global variables protected by a sync.Mutex. Fixes #116. Commit: 2d86fbfacee9bef2745a2fb29efc8e7760f1cc5d https://github.com/btcsuite/btcd/commit/2d86fbfacee9bef2745a2fb29efc8e7760f1cc5d Author: Olaoluwa Osuntokun <laol...@gmail.com> Date: 2016-08-19 (Fri, 19 Aug 2016) Changed paths: A rpcserver_test.go Log Message: ----------- btcd: add basic RPC tests using the rpctest package This commit introduces a new file: rpcserver_test.go dedicated for including integration tests for btcd using the new rpctest package. The tests are created using a TestMain instance first creates a single main harness which is intended to be re-used across tests instances. Afterwards all registered RPC tests are executed, with proper clean up being executed regardless of the passing state of the tests. The following RPC calls are excessed by the initial set of tests added: * getbestblock * getblockcount * getblockhash Commit: c3d5371615c4869e3f899a355421089318976944 https://github.com/btcsuite/btcd/commit/c3d5371615c4869e3f899a355421089318976944 Author: Olaoluwa Osuntokun <laol...@gmail.com> Date: 2016-08-19 (Fri, 19 Aug 2016) Changed paths: M glide.lock M glide.yaml Log Message: ----------- build: update dependancies required by rpctest Commit: 7c4b169faa134b6716f574cff87d2e4340fba57b https://github.com/btcsuite/btcd/commit/7c4b169faa134b6716f574cff87d2e4340fba57b Author: Olaoluwa Osuntokun <laol...@gmail.com> Date: 2016-08-19 (Fri, 19 Aug 2016) Changed paths: M .travis.yml Log Message: ----------- build: install btcd binary within Travis container This commit modifies the existing Travis configuration to also install the btcd binary within the container’s PATH. This change is necessary in order for tests written against the new rpctest package to work properly within the Travis testing environment. Compare: https://github.com/btcsuite/btcd/compare/763f731c5c97...7c4b169faa13