Skip to content

Return errors for recovered argument matching panics - #359

Open
jakezwang wants to merge 1 commit into
DATA-DOG:masterfrom
jakezwang:fix/recovered-argument-panics
Open

jakezwang wants to merge 1 commit into
DATA-DOG:masterfrom
jakezwang:fix/recovered-argument-panics

Conversation

@jakezwang

Copy link
Copy Markdown

Unordered argument matching recovers panics while trying expectations, but an error-valued panic currently leaves a nil error and incorrectly selects that expectation. Matching then panics again instead of trying a later valid expectation. Non-string panic values can also panic in the recovery handler.

Convert recovered values to errors in both implementations, preserving their text. Extend the existing recovery test and cover public Exec/Query calls that encounter a type-mismatched matcher before the matching expectation.

Validation: five regression cases fail before the fix. Required root race/coverage tests and go vet ./... pass; root race tests also pass with Go 1.18.10 and 1.27.1. The additional Go 1.27.1 all-package run times out in examples/orders, reproduced in the same test on the unchanged base. Whole-repository formatting also reports the same 16 pre-existing files on both versions; the changed files are formatted.

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