bitcoin/test/functional/test_framework
MarcoFalke 94db963de5
Merge bitcoin/bitcoin#23300: test: Implicitly sync after generate*, unless opted out
facc352648 test: Implicitly sync after generate*, unless opted out (MarcoFalke)

Pull request description:

  The most frequent failure in functional tests are intermittent races. Fixing such bugs is cumbersome because it involves:
  * Noticing the failure
  * Fetching and reading the log to determine the test case that failed
  * Adding a `self.sync_all()` where it was forgotten
  * Spamming out a pr and waiting for review, which is already sparse

  Also, writing a linter to catch those is not possible, nor is review effective in finding these bugs prior to merge.

  Fix all future intermittent races caused by a missing sync_block call by calling `sync_all` implicitly after each `generate*`, unless opted out. This ensures that the code is race-free (with regards to blocks) when the tests pass once, instead of our current approach where the code can never be guaranteed to be race-free.

  There are some scripted-diff cleanups (see https://github.com/bitcoin/bitcoin/pull/22567), but they will be submitted in a follow-up to reduce the conflicts in this pull.

ACKs for top commit:
  lsilva01:
    tACK facc352 on Ubuntu 20.04
  brunoerg:
    tACK facc352648 on MacOS 11.6

Tree-SHA512: 046a40a066b4a3bd28a3077bd654fa8887442dd1f0ec6fd11671865809ef02376f126eb667a1320ebd67b6e372c78c00dbf8bd25d86ed86f1d9a25363103ed97
2021-11-09 09:58:51 +01:00
..
__init__.py Rename rpc-tests directory to functional 2017-03-20 10:40:31 -04:00
address.py test: refactor: remove hex_str_to_bytes helper 2021-08-01 19:26:51 +02:00
authproxy.py test: Remove Windows workaround in authproxy 2021-09-25 09:33:16 +02:00
bdb.py test: refactor: remove binascii from test_framework 2021-08-04 19:59:13 +01:00
bip340_test_vectors.csv tests: add BIP340 Schnorr signature support to test framework 2020-10-12 17:18:47 -07:00
blocktools.py test: add script_util helper for creating bare multisig scripts 2021-10-26 14:51:18 +02:00
coverage.py test: add type annotations to util.get_rpc_proxy 2021-07-27 11:26:14 +08:00
descriptors.py Output a descriptor in createmultisig and addmultisigaddress 2020-01-30 23:55:36 -05:00
key.py test: remove unused function xor_bytes 2021-02-09 17:58:21 +01:00
messages.py refactor: replace remaining binascii method calls 2021-08-16 19:30:56 +01:00
muhash.py test: Change MuHash Python implementation to match cpp version again 2020-12-22 01:48:34 +01:00
netutil.py test: refactor: remove binascii from test_framework 2021-08-04 19:59:13 +01:00
p2p.py test: use test_framework.p2p P2P_SERVICES in functional tests 2021-09-19 14:20:48 +02:00
script.py Correction for VerifyTaprootCommitment comments 2021-03-01 09:01:48 -05:00
script_util.py test: add script_util helper for creating bare multisig scripts 2021-10-26 14:51:18 +02:00
segwit_addr.py Use Bech32m encoding for v1+ segwit addresses 2021-03-16 10:48:36 -07:00
siphash.py Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
socks5.py scripted-diff: Update copyright in ./test 2019-03-02 10:58:35 -05:00
test_framework.py test: Implicitly sync after generate*, unless opted out 2021-10-29 13:34:52 +02:00
test_node.py test: Delete generate* calls from TestNode 2021-10-06 13:41:08 +02:00
test_shell.py TestShell: Return self from setup() 2019-11-05 12:55:52 +01:00
util.py Merge bitcoin/bitcoin#23300: test: Implicitly sync after generate*, unless opted out 2021-11-09 09:58:51 +01:00
wallet.py test: MiniWallet: more deterministic coin selection for coinbase UTXOs (oldest first) 2021-10-27 17:49:53 +02:00
wallet_util.py test: add script_util helper for creating bare multisig scripts 2021-10-26 14:51:18 +02:00