test: Helpful panic messages for tokio_test::io #7212
Merged
+53
−9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduce
tokio_test::io::Builder::name
to configure name of the mock object, to include in panic messages.Also show number of remaining actions or action index in some cases to help debugging failed tests.
Motivation
When using
tokio_test::io::Mock
, it is tricky to debug problems, especially if multiple mocks are used. For example, if it panics with "unexpected write", it is hard to determine which of the mock objects faced the unexpected write and at what position of the scenario.Solution
Builder
gainedname
method to set makeMock
remember a string.Panic messages are adjusted to include that name (if set), also some additional information (like the number of remaining actions) to aid hack-try-print-repeat-based debugging sessions.
Before:
After: