mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-15 16:38:23 +01:00
Merge bitcoin/bitcoin#30660: qa: Verify clean shutdown on startup failure
10845cd7ccqa: Add feature_framework_startup_failures.py (Hodlinator)28e282ef9aqa: assert_raises_message() - Stop assuming certain structure for exceptions (Hodlinator)1f639efca5qa: Work around Python socket timeout issue (Hodlinator)9b24a403faqa: Only allow calling TestNode.stop() after connecting (Hodlinator)6ad21b4c01qa: Include ignored errors in RPC connection timeout (Hodlinator)879243e81fqa refactor: wait_for_rpc_connection - Treat OSErrors the same (Hodlinator) Pull request description: Improves handling of startup errors in functional tests and puts tests in place to ensure knock-on errors don't creep in. - `wait_for_rpc_connection()` now appends specific failures leading up to the `Unable to connect to bitcoind` error to that error message: `[node 0] Unable to connect to bitcoind after 60s (ignored errors: {'missing_credentials': 1, 'OSError.ECONNREFUSED': 239}, latest error: ConnectionRefusedError(111, 'Connection refused'))` - Fixes Windows Python issue where `socket.timeout` exceptions end up with unset `errno`-fields. - Also adds comments, refactors code, improves logging. The underlying purpose is to ensure developer efficiency in finding root causes of test failures. Prior iterations of the PR partially focused on fixing the same issue as #31620. Originally inspired by #30390. ### Testing Can be tested by reverting eitherfaf2f2c654orfae3bf6b87from #31620, or the "qa: Avoid calling stop-RPC if not connected" from this PR, and running *feature_framework_startup_failures.py*. ACKs for top commit: l0rinc: ACK10845cd7ccryanofsky: Code review ACK10845cd7cc. Only changes since last review were adding a new commit tweaking assert_raises_message(), extending the new test to have a self-check, and to pass through all options to child tests instead of a hardcoded list of options. I left some cleanup suggestions below but they are not important. Tree-SHA512: f0235c5cbb6d1bb85d8dc5de492a08a34f6edc83499cbf0a5f9a3824809ff84635888c62c9c01101e3cc9ef9f1cdee2c9ab6537fea6feeb005b29f428caf8b22
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright (c) 2014-2022 The Bitcoin Core developers
|
||||
# Copyright (c) 2014-present The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
"""Run regression test suite.
|
||||
@@ -355,6 +355,7 @@ BASE_SCRIPTS = [
|
||||
'p2p_handshake.py --v2transport',
|
||||
'feature_dirsymlinks.py',
|
||||
'feature_help.py',
|
||||
'feature_framework_startup_failures.py',
|
||||
'feature_shutdown.py',
|
||||
'wallet_migration.py',
|
||||
'p2p_ibd_txrelay.py',
|
||||
|
||||
Reference in New Issue
Block a user