mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-11 07:09:29 +02:00
Merge bitcoin/bitcoin#34727: test: Add IPC wake-up test and reuse mining context
ad75b147b5test: scale IPC mining wait timeouts by timeout_factor (Enoch Azariah)e7a918b69atest: verify IPC error handling for invalid coinbase (Enoch Azariah)63684d6922test: move make_mining_ctx to ipc_util.py (Enoch Azariah)4ada575d6ctest: verify createNewBlock wakes promptly when tip advances (Enoch Azariah) Pull request description: This is a follow-up to implement a couple of test improvements discussed in recent IPC PRs and issues. - adds a test to `interface_ipc_mining.py` to verify that `createNewBlock` wakes up immediately when the tip advances, rather than waiting for the cooldown timer to expire (https://github.com/bitcoin/bitcoin/pull/34184#discussion_r2842239399). - moves `make_mining_ctx` into `ipc_util.py` so it can be reused across the IPC tests instead of duplicating the setup code (https://github.com/bitcoin/bitcoin/pull/34422#discussion_r2852445430). - adds a test case to verify that providing an invalid coinbase to `submitSolution` returns a remote exception instead of crashing the node, closing the loop on the issue reported in #33341. - scales IPC wait timeouts using the test suite's `timeout_factor` to prevent spurious failures in heavily loaded CI environments, capping extended waits to avoid test runner hangs (bitcoin-core/libmultiprocess#253 (comment)). Closes #33341. ACKs for top commit: Sjors: ACKad75b147b5achow101: ACKad75b147b5sedited: ACKad75b147b5Tree-SHA512: 812aa64c03657761f06707e6a15b8b435ab7c75717a6748a919fcbcae317128e18403b0c1bddd4cdad877d286e69db52389633e4012faaa656acc01939091719
This commit is contained in:
@@ -11,6 +11,7 @@ from test_framework.util import assert_equal
|
||||
from test_framework.ipc_util import (
|
||||
load_capnp_modules,
|
||||
make_capnp_init_ctx,
|
||||
make_mining_ctx,
|
||||
)
|
||||
|
||||
# Test may be skipped and not have capnp installed
|
||||
@@ -55,9 +56,7 @@ class IPCInterfaceTest(BitcoinTestFramework):
|
||||
block_hash_size = 32
|
||||
|
||||
async def async_routine():
|
||||
ctx, init = await make_capnp_init_ctx(self)
|
||||
self.log.debug("Create Mining proxy object")
|
||||
mining = init.makeMining(ctx).result
|
||||
ctx, mining = await make_mining_ctx(self)
|
||||
self.log.debug("Test simple inspectors")
|
||||
assert (await mining.isTestChain(ctx)).result
|
||||
assert not (await mining.isInitialBlockDownload(ctx)).result
|
||||
@@ -95,10 +94,7 @@ class IPCInterfaceTest(BitcoinTestFramework):
|
||||
disconnected_log_check = ExitStack()
|
||||
|
||||
async def async_routine():
|
||||
ctx, init = await make_capnp_init_ctx(self)
|
||||
self.log.debug("Create Mining proxy object")
|
||||
mining = init.makeMining(ctx).result
|
||||
|
||||
ctx, mining = await make_mining_ctx(self)
|
||||
self.log.debug("Create a template")
|
||||
opts = self.capnp_modules['mining'].BlockCreateOptions()
|
||||
template = (await mining.createNewBlock(ctx, opts)).result
|
||||
@@ -131,10 +127,7 @@ class IPCInterfaceTest(BitcoinTestFramework):
|
||||
timeout = self.rpc_timeout * 1000.0
|
||||
|
||||
async def async_routine():
|
||||
ctx, init = await make_capnp_init_ctx(self)
|
||||
self.log.debug("Create Mining proxy object")
|
||||
mining = init.makeMining(ctx).result
|
||||
|
||||
ctx, mining = await make_mining_ctx(self)
|
||||
self.log.debug("Create a template")
|
||||
opts = self.capnp_modules['mining'].BlockCreateOptions()
|
||||
template = (await mining.createNewBlock(ctx, opts)).result
|
||||
|
||||
Reference in New Issue
Block a user