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
@codecov

codecov Bot commented Jul 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.36%. Comparing base (fe73d8a) to head (471b2ad).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #367      +/-   ##
===========================================
+ Coverage    98.18%   98.36%   +0.18%     
===========================================
  Files          152      152              
  Lines         8246     8260      +14     
===========================================
+ Hits          8096     8125      +29     
+ Misses         150      135      -15     
Flag Coverage Δ
linux 98.31% <ø> (+0.15%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
include/boost/capy/test/fuse.hpp 72.00% <100.00%> (+4.73%) ⬆️

... and 2 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fe73d8a...471b2ad. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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