I agree - I took a look at the minimization algorithm[0] and it seems like it loops through a few basic options, with the last one basically normalizing all possible bytes to something readable (like "0"). Part of the issue with trying to be as generic as possible is you sometimes can't find the best solution to every problem, this might be one of those situations.
I know the goal of 1.18 was to get the UX down, so I'm interested to see how it improves for 1.19.
[0] https://github.com/golang/go/blob/master/src/internal/fuzz/m...
Re:Go Fuzz Testing
by disposedtrolley on Tuesday March 29, 2022 @04:11PM
(#30847759)
You might be interested in reading about delta debugging: https://en.m.wikipedia.org/wiki/Delta_debugging
The algorithm has similar complexity as binary search, but is a bit smarter on deciding how to split the test input at each iteration.
I’ve been studying this in my masters, and we’ve recently had to write a Java implementation. I’m keen to start on a Go package soon that might work well with fuzz testing.
There's also the fact that I'd expect a fuzzer that knows about Unicode and UTF-8 strings to have a known list of weird behavior hardcoded as seed values, and certainly two-byte runes would be on that list.
Of course, this is only the first release with the fuzzer, and it already looks really amazing - all I'm really saying here is that I can't wait for these to be features of the fuzzer in the future!