Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: Convert non-wallet tests to use our python MiniWallet #20078

Open
MarcoFalke opened this issue Oct 4, 2020 · 2 comments
Open

test: Convert non-wallet tests to use our python MiniWallet #20078

MarcoFalke opened this issue Oct 4, 2020 · 2 comments

Comments

@MarcoFalke
Copy link
Member

@MarcoFalke MarcoFalke commented Oct 4, 2020

It is possible to compile Bitcoin Core without the wallet. Though, many tests require the Bitcoin Core wallet to create and sign transactions. Ideally, every non-wallet test (for example consensus tests) are run even with the Bitcoin Core wallet disabled. This ensures that users running without the wallet can test their Bitcoin Core with the functional test suite.

Thus, tests that use the Bitcoin Core wallet should be rewritten to use the python MiniWallet.

This is an open-ended issue. You can find candidate tests via git grep 'self.skip_if_no_wallet()'. Exclude the tests that start with wallet_, as those are tests that are meant to test the Bitcoin Core wallet.

Refer to #19922 and #19800 as examples on how to approach this issue.

Useful skills:

  • Familiarity with the RPC interface
  • Familiarity with our functional test suite
  • Good python3 skills

Want to work on this issue?

For guidance on contributing, please read CONTRIBUTING.md before opening your pull request.

MarcoFalke added a commit that referenced this issue Oct 13, 2020
…p2p_lock acquires)

5b77f80 test: add p2p_lock acquires in p2p_leak_tx.py (Sebastian Falbesoner)
cc8c682 test: use MiniWallet for p2p_leak_tx.py (Sebastian Falbesoner)

Pull request description:

  This PR enables one more of the non-wallet functional tests (p2p_leak_tx.py) to be run even with the Bitcoin Core wallet disabled by using the new MiniWallet instead, as proposed in #20078. It also adds missing p2p_lock acquires that need to be held while modifying internal p2p Interface state (in this case the `last_message` dictionary) to avoid data races.

ACKs for top commit:
  laanwj:
    Code review ACK 5b77f80

Tree-SHA512: 6661bc6e3491a9af4bf040f379e5955c525136397e99d3eadde92e247580d0d87efff750e6d3b1f6d9a4e578144a433a982f574ef056b44dd6bca33873a1bae6
@dboures
Copy link

@dboures dboures commented Oct 14, 2020

Hey, I can give this issue a shot.

@MarcoFalke
Copy link
Member Author

@MarcoFalke MarcoFalke commented Oct 14, 2020

Sure. No need to ask on this one, as it is open ended. There should be enough tests for everyone to convert

MarcoFalke added a commit that referenced this issue Oct 17, 2020
…(use MiniWallet, add logging)

b128b56 test: add logging for mining_getblocktemplate_longpoll.py (Sebastian Falbesoner)
8ee3536 test: remove unused helpers random_transaction(), make_change() and gather_inputs() (Sebastian Falbesoner)
fddce7e test: use MiniWallet for mining_getblocktemplate_longpoll.py (Sebastian Falbesoner)

Pull request description:

  This PR enables one more of the non-wallet functional tests (mining_getblocktemplate_longpoll.py) to be run even with the Bitcoin Core wallet disabled by using the new MiniWallet instead, as proposed in #20078. Also adds missing log messages for the subtests.

  This was the only functional test that used the `random_transaction` helper in `test_framework/util.py`, hence it is removed, together with other helpers (`make_change` and `gather_inputs`) that were again only used by `random_transaction`.

ACKs for top commit:
  MarcoFalke:
    ACK b128b56

Tree-SHA512: 09a5fa7b0f5976a47040f7027236d7ec0426d5a4829a082221c4b5fae294470230e89ae3df0bca0eea26833162c03980517f5cc88761ad251c3df4c4a49bca46
sidhujag added a commit to syscoin/syscoin that referenced this issue Oct 18, 2020
…ements (use MiniWallet, add logging)

b128b56 test: add logging for mining_getblocktemplate_longpoll.py (Sebastian Falbesoner)
8ee3536 test: remove unused helpers random_transaction(), make_change() and gather_inputs() (Sebastian Falbesoner)
fddce7e test: use MiniWallet for mining_getblocktemplate_longpoll.py (Sebastian Falbesoner)

Pull request description:

  This PR enables one more of the non-wallet functional tests (mining_getblocktemplate_longpoll.py) to be run even with the Bitcoin Core wallet disabled by using the new MiniWallet instead, as proposed in bitcoin#20078. Also adds missing log messages for the subtests.

  This was the only functional test that used the `random_transaction` helper in `test_framework/util.py`, hence it is removed, together with other helpers (`make_change` and `gather_inputs`) that were again only used by `random_transaction`.

ACKs for top commit:
  MarcoFalke:
    ACK b128b56

Tree-SHA512: 09a5fa7b0f5976a47040f7027236d7ec0426d5a4829a082221c4b5fae294470230e89ae3df0bca0eea26833162c03980517f5cc88761ad251c3df4c4a49bca46
laanwj added a commit that referenced this issue Nov 19, 2020
…sabled

21f2433 test: run mempool_spend_coinbase.py even with wallet disabled (Michael Dietz)

Pull request description:

  Run the mempool spend coinbase test even when the wallet was not compiled, as proposed in #20078.

ACKs for top commit:
  laanwj:
    ACK 21f2433

Tree-SHA512: 301582c04376371cfa8f1ebb2418a4341b42ddcd9ad4f48b58bcf888d867a97bdc409972856b67a8339ac5e60124aefee82a049b4f7fc6bca7a18d7e92e090be
MarcoFalke added a commit to bitcoin-core/gui that referenced this issue Dec 16, 2020
3b064fc test: run mempool_expiry.py even with wallet disabled (Michael Dietz)

Pull request description:

  Run the mempool expiry test even when the wallet was not compiled, as proposed in bitcoin/bitcoin#20078.

ACKs for top commit:
  MarcoFalke:
    ACK 3b064fc

Tree-SHA512: 5860dc021d02bc3752268ec1e859505bec87174953223b34b1af8a8e4ab66d645458fbf9571c0b816a9de891c3ff41314996e580869671fccd6972c093e78154
sidhujag added a commit to syscoin/syscoin that referenced this issue Dec 17, 2020
…abled

3b064fc test: run mempool_expiry.py even with wallet disabled (Michael Dietz)

Pull request description:

  Run the mempool expiry test even when the wallet was not compiled, as proposed in bitcoin#20078.

ACKs for top commit:
  MarcoFalke:
    ACK 3b064fc

Tree-SHA512: 5860dc021d02bc3752268ec1e859505bec87174953223b34b1af8a8e4ab66d645458fbf9571c0b816a9de891c3ff41314996e580869671fccd6972c093e78154
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.