std.testing: Add expectEqualBytes that outputs hexdumps with diffs highlighted in red #13720
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.
Provides a nice improvement over the current output of
expectEqualSlices
when dealing with binary data (the status quo is that only the first line of the output shown below is printed [theindex 5 incorrect
, etc]).Example when the lengths match:

Example when the lengths are different:

The coloring is controlled by
std.debug.detectTTYConfig
so it will be disabled when appropriate.Some notes:
expectEqualSlices
when the type isu8
. Unsure if that'd be better. There's this relevant TODO inexpectEqualSlices
, but I'm unsure if hexdumps like this would satisfy it or not:zig/lib/std/testing.zig
Lines 285 to 288 in 71038c4