diff options
author | fanquake <fanquake@gmail.com> | 2021-09-18 16:00:24 +0800 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2021-09-18 16:49:19 +0800 |
commit | de2af19dc8e8c848afbc4b43b9b4092fe263364f (patch) | |
tree | ceb5f9dc98f6fe7cd2f74f0e46bb19f8de029049 | |
parent | e69cbac628bfdca4a8e4ead821190eaf5b6b3d07 (diff) | |
parent | 357f0c723308b296c6250946c26cf476d9ecfda2 (diff) | |
download | bitcoin-de2af19dc8e8c848afbc4b43b9b4092fe263364f.tar.xz |
Merge bitcoin/bitcoin#22987: qa: Fix "RuntimeError: Event loop is closed" on Windows
357f0c723308b296c6250946c26cf476d9ecfda2 ci: Enable more functional tests on Windows MSVC task (Hennadii Stepanov)
f55932678facea2c36bc0708994dbef327a7df09 qa: Fix "RuntimeError: Event loop is closed" on Windows (Hennadii Stepanov)
Pull request description:
On master (2161a058552ac938f2079b311a2d12f5d1772d01), running functional tests that use the P2P interface ends with an error:
```
RuntimeError: Event loop is closed
```
This PR fixes this bug, and enables more functional tests on Windows MSVC CI task.
More details about bugfix:
- [What’s New In Python 3.7](https://docs.python.org/3/whatsnew/3.7.html#asyncio)
- https://bugs.python.org/issue33792
- actual [change](https://docs.python.org/3.8/library/asyncio-policy.html#asyncio.WindowsSelectorEventLoopPolicy) done in Python 3.8
Excluded tests, that are listed in the `EXCLUDE_TESTS` environment variable, need more thorough investigation to be enabled.
ACKs for top commit:
MarcoFalke:
review ACK 357f0c723308b296c6250946c26cf476d9ecfda2 🌆
Tree-SHA512: d0ba85be81d55c934959ce7402a9c726598125e9751a1de179d16759d0e8b8a915de879c3a62c12d3564c5e0d9649ebd86963744449626efaa42d9eaa99ad3d0
-rw-r--r-- | .cirrus.yml | 6 | ||||
-rwxr-xr-x | test/functional/test_framework/p2p.py | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/.cirrus.yml b/.cirrus.yml index b8e46aed64..398f463ecc 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -75,7 +75,7 @@ task: << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV task: - name: "Win64 native [unit tests, no functional tests] [msvc]" + name: "Win64 native [msvc]" << : *FILTER_TEMPLATE windows_container: cpu: 4 @@ -93,6 +93,7 @@ task: QTBASEDIR: 'C:\Qt5.12.11_x64_static_vs2019_160900' x64_NATIVE_TOOLS: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat"' IgnoreWarnIntDirInTempDetected: 'true' + EXCLUDE_TESTS: 'feature_addrman.py,feature_bip68_sequence.py,feature_fee_estimation.py,mining_prioritisetransaction.py,p2p_getaddr_caching.py,p2p_invalid_locator.py,p2p_invalid_tx.py,rpc_misc.py,rpc_net.py,wallet_avoidreuse.py,wallet_descriptor.py,wallet_groups.py,wallet_keypool.py' merge_script: - git config --global user.email "ci@ci.ci" - git config --global user.name "ci" @@ -146,7 +147,8 @@ task: - python test\util\test_runner.py - python test\util\rpcauth-test.py functional_tests_script: - - python test\functional\test_runner.py --ci --quiet --combinedlogslen=4000 --jobs=4 --timeout-factor=8 rpc_help feature_config_args rpc_signer feature_presegwit_node_upgrade "tool_wallet.py --descriptors" --failfast # TODO enable '--extended' and remove cherry-picked test list + # TODO enable '--extended' and drop '--exclude'. + - python test\functional\test_runner.py --ci --quiet --combinedlogslen=4000 --jobs=4 --timeout-factor=8 --exclude %EXCLUDE_TESTS% --failfast task: name: 'ARM [unit tests, no functional tests] [bullseye]' diff --git a/test/functional/test_framework/p2p.py b/test/functional/test_framework/p2p.py index b7d5bd8fab..ec563cc290 100755 --- a/test/functional/test_framework/p2p.py +++ b/test/functional/test_framework/p2p.py @@ -577,6 +577,8 @@ class NetworkThread(threading.Thread): NetworkThread.listeners = {} NetworkThread.protos = {} + if sys.platform == 'win32': + asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) NetworkThread.network_event_loop = asyncio.new_event_loop() def run(self): |