Skip to content

test(fuse): let armed run on any execution context#367

Merged
mvandeberg merged 1 commit into
cppalliance:developfrom
mvandeberg:pr/fuse-armed-runner
Jul 22, 2026
Merged

test(fuse): let armed run on any execution context#367
mvandeberg merged 1 commit into
cppalliance:developfrom
mvandeberg:pr/fuse-armed-runner

Conversation

@mvandeberg

Copy link
Copy Markdown
Contributor

fuse::armed/inert only ever drove iterations through run_blocking (the built-in blocking_context), so they could not exercise operations that require a different execution context -- e.g. corosio::timeout, which needs an io_context. That left the test drivers out of step with the executor-generic run_async execution model.

Add armed(run_one, fn): the caller supplies a runner that drives each iteration's task on a context it owns and returns any escaped exception as a std::exception_ptr (armed rethrows it from its own synchronous code). Returning rather than rethrowing is required because an exception escaping a run_async completion handler calls std::terminate. fuse stays io-agnostic -- the caller owns the drive loop and the concrete context.

fuse::armed/inert only ever drove iterations through run_blocking (the
built-in blocking_context), so they could not exercise operations that
require a different execution context -- e.g. corosio::timeout, which
needs an io_context. That left the test drivers out of step with the
executor-generic run_async execution model.

Add armed(run_one, fn): the caller supplies a runner that drives each
iteration's task on a context it owns and returns any escaped exception
as a std::exception_ptr (armed rethrows it from its own synchronous
code). Returning rather than rethrowing is required because an exception
escaping a run_async completion handler calls std::terminate. fuse stays
io-agnostic -- the caller owns the drive loop and the concrete context.
@cppalliance-bot

Copy link
Copy Markdown

An automated preview of the documentation is available at https://367.capy.prtest3.cppalliance.org/index.html

If more commits are pushed to the pull request, the docs will rebuild at the same URL.

2026-07-22 18:02:07 UTC

@cppalliance-bot

Copy link
Copy Markdown

GCOVR code coverage report https://367.capy.prtest3.cppalliance.org/gcovr/index.html
LCOV code coverage report https://367.capy.prtest3.cppalliance.org/genhtml/index.html
Coverage Diff Report https://367.capy.prtest3.cppalliance.org/diff-report/index.html

Build time: 2026-07-22 18:19:20 UTC

@mvandeberg
mvandeberg merged commit 61945d4 into cppalliance:develop Jul 22, 2026
36 of 37 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Beast2 Jul 22, 2026
@mvandeberg
mvandeberg deleted the pr/fuse-armed-runner branch July 22, 2026 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants