bitcoin/test/functional/test_framework
Ava Chow 2666d83da5
Some checks are pending
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
CI / Win64 native, VS 2022 (push) Waiting to run
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
Merge bitcoin/bitcoin#30893: test: Introduce ensure_for helper
111465d72d test: Remove unused attempts parameter from wait_until (Fabian Jahr)
5468a23eb9 test: Add check_interval parameter to wait_until (Fabian Jahr)
16c87d91fd test: Introduce ensure_for helper (Fabian Jahr)

Pull request description:

  A repeating pattern in the functional tests is that the test sleeps for a while to ensure that a certain condition is still true after some amount of time has elapsed. Most recently a new case of this was added in #30807. This PR here introduces an `ensure` helper to streamline this functionality.

  Some approach considerations:
  - It is possible to construct this by reusing `wait_until` and wrapping it in `try` internally. However, the logger output of the failing wait would still be printed which seems irritating. So I opted for simplified but similar internals to `wait_until`.
  - This implementation starts for a failure in the condition right away which has the nice side-effect that it might give feedback on a failure earlier than is currently the case. However, in some cases, it may be expected that the condition may still be false at the beginning and then turns true until time has run out, something that would work when the test sleeps without checking in a loop. I decided against this design (and even against adding it as an option) because such a test design seems like it would be racy either way.
  - I have also been going back and forth on naming. To me `ensure` works well but I am also not a native speaker, happy consider a different name if others don't think it's clear enough.

ACKs for top commit:
  maflcko:
    re-ACK 111465d72d 🍋
  achow101:
    ACK 111465d72d
  tdb3:
    code review re ACK 111465d72d
  furszy:
    utACK 111465d72d

Tree-SHA512: ce01a4f3531995375a6fbf01b27d51daa9d4c3d7cd10381be6e86ec5925d2965861000f7cb4796b8d40aabe3b64c4c27e2811270e4e3c9916689575b8ba4a2aa
2024-11-19 13:56:20 -05:00
..
crypto crypto: add NUMS_H const 2024-05-14 10:24:31 +02:00
__init__.py Rename rpc-tests directory to functional 2017-03-20 10:40:31 -04:00
address.py test: check that keyless P2A 'signing' via signrawtransactionwithkey succeeds 2024-08-02 20:13:07 +02:00
authproxy.py test: use json-rpc 2.0 in all functional tests by default 2024-06-07 09:26:55 -04:00
bdb.py scripted-diff: Bump copyright headers 2021-11-10 11:10:24 +01:00
bip340_test_vectors.csv tests: add BIP340 Schnorr signature support to test framework 2020-10-12 17:18:47 -07:00
blockfilter.py Merge bitcoin/bitcoin#28605: Fix typos 2023-11-16 10:35:49 +00:00
blocktools.py test: [refactor] Fix E714 pycodestyle 2024-08-29 07:00:27 +02:00
coverage.py test: fix PEP484 no implicit optional argument types errors 2023-06-29 16:14:07 -06:00
descriptors.py Output a descriptor in createmultisig and addmultisigaddress 2020-01-30 23:55:36 -05:00
key.py test: Rename early key response test and move random_bitflip to util 2024-03-11 12:58:20 +05:30
mempool_util.py functional test: Add ephemeral dust tests 2024-11-12 09:24:54 -05:00
messages.py test: fix constructor of msg_tx 2024-07-30 17:49:07 -04:00
netutil.py test: extend the SOCKS5 Python proxy to actually connect to a destination 2024-10-22 13:03:02 +02:00
p2p.py Merge bitcoin/bitcoin#30893: test: Introduce ensure_for helper 2024-11-19 13:56:20 -05:00
psbt.py test: PSBT: eliminate magic numbers for global unsigned tx key (0) 2023-03-04 12:43:38 +01:00
script.py test: Make leaf_script mandatory when scriptpath is set in TaprootSignatureMsg 2024-07-31 09:57:42 +02:00
script_util.py test: Add anchor mempool acceptance test 2024-07-30 14:06:58 -04:00
segwit_addr.py Use Bech32m encoding for v1+ segwit addresses 2021-03-16 10:48:36 -07:00
socks5.py doc: correct typos 2024-11-11 14:14:39 +00:00
test_framework.py Merge bitcoin/bitcoin#30893: test: Introduce ensure_for helper 2024-11-19 13:56:20 -05:00
test_node.py Merge bitcoin/bitcoin#30893: test: Introduce ensure_for helper 2024-11-19 13:56:20 -05:00
test_shell.py test: fix TestShell initialization (late follow-up for #30463) 2024-08-25 20:57:22 +02:00
util.py Merge bitcoin/bitcoin#30893: test: Introduce ensure_for helper 2024-11-19 13:56:20 -05:00
v2_p2p.py test: Check that disconnection happens when >4095 garbage bytes is sent 2024-06-21 19:37:13 +05:30
wallet.py test: switch MiniWallet padding unit from weight to vsize 2024-09-28 22:49:41 +02:00
wallet_util.py Fix typos in description.md and wallet_util.py 2024-04-25 16:14:10 +08:00