Skip to content

Re-point the GH-3740 tests at the better guarantee JasperFx 2.37.0 gives us - #3755

Merged
jeremydmiller merged 1 commit into
mainfrom
fix/3740-tests-after-jasperfx-590
Jul 31, 2026
Merged

jeremydmiller merged 1 commit into
mainfrom
fix/3740-tests-after-jasperfx-590

Conversation

@jeremydmiller

Copy link
Copy Markdown
Member

main is red at 90229b2c5, and has been since the JasperFx 2.37.0 bump (134f4cf5b). Only these two tests fail, on main itself and on every PR branched from it:

CoreTests.Acceptance.service_capabilities_resilience_3740.cancellation_is_not_swallowed_as_a_section_failure
CoreTests.Acceptance.service_capabilities_resilience_3740.one_misbehaving_transport_does_not_lose_the_whole_snapshot

Why

2.37.0 carries jasperfx#590, which guards OptionsDescription's reflective getter walk directly: a property whose getter throws is recorded as OptionsValue.Unreadable instead of taking the whole description down with it.

That is strictly better than what Wolverine's own GH-3740 guard could do on its own — the broker is now described, minus one property, rather than dropped entirely. But it means TryBuildBrokerUsage no longer throws for BadlyBehavedTransport, so both tests were left asserting the old, worse outcome:

  • one_misbehaving_transport_does_not_lose_the_whole_snapshot asserted the bad broker was absent. It is now present, correctly.
  • cancellation_is_not_swallowed_as_a_section_failure reached the cancellation check only because a section threw. With nothing throwing, the check is never reached.

So this is the test suite catching a behaviour improvement, not a product regression. No product code changes here.

What changed

  • one_misbehaving_property_getter_costs_only_that_property (renamed) asserts the real contract now: the broker is in the snapshot and only Explosive reads back with the OptionsValue.UnreadablePrefix marker.
  • one_undescribable_transport_does_not_lose_the_whole_snapshot is new, and keeps covering Wolverine's per-transport guard in readTransports — the half OptionsDescription cannot help with, because a throw out of TryBuildBrokerUsage happens before it ever runs. Backed by a new UndescribableTransport.
  • cancellation_is_not_swallowed_as_a_section_failure uses that transport too, since it needs a section that genuinely fails to reach the cancellation check at all.

Verification

  • 11 capabilities tests green on net9.0 and net10.0 against a clean origin/main + this commit.
  • Confirmed non-vacuous: deleting the try/catch in readTransports fails one_undescribable_transport_does_not_lose_the_whole_snapshot, and the cancellation test still fails without the ThrowIfCancellationRequested in warnAboutFailedSection.

🤖 Generated with Claude Code

…ves us

The 2.37.0 bump (134f4cf) pulled in #590, which guards OptionsDescription's
reflective getter walk directly: a property whose getter throws is now recorded as
OptionsValue.Unreadable instead of taking the whole description down with it. That is
strictly better than what Wolverine's own GH-3740 guard could do -- the broker is
described, minus one property, rather than dropped entirely -- but it left both tests
in service_capabilities_resilience_3740 asserting the old, worse outcome, and main
red for it.

- one_misbehaving_property_getter_costs_only_that_property replaces the "badly behaved
  broker is simply missing" assertion with the real contract: the broker IS in the
  snapshot and only Explosive reads back as unreadable.
- one_undescribable_transport_does_not_lose_the_whole_snapshot is new, and keeps
  covering Wolverine's per-transport guard, which OptionsDescription cannot help with
  because the throw happens in TryBuildBrokerUsage before it ever runs. Verified
  non-vacuous: deleting the try/catch in readTransports fails this test.
- cancellation_is_not_swallowed_as_a_section_failure now uses that transport too, since
  it needs a section that genuinely fails in order to reach the cancellation check at
  all.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@jeremydmiller
jeremydmiller merged commit 4d05fbd into main Jul 31, 2026
29 of 31 checks passed
This was referenced Aug 1, 2026
This was referenced Aug 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant