So, I had a look at the newly landed code, and I must say that it feels a bit extreme to actually do exhaustive testing of all possible fragmentation variants.
While code could certainly be designed to exhibit parsing bugs with fragmentation that doesn't get triggered by just testing for the cases "fragment into single byte buffers" and "fragment into all possible combinations of two buffers", I think that a few minutes of 4 cores crunching all the permutations seems limiting.
I propose we move to a much simpler testing strategy for the common case (where you do some other development and don't modify the logic of the framing parser) and save the exhaustive search for when we actually do such changes.
that contains such a change, and the ZMTPMessageParserTest runs in .163s on my laptop with that change.
This is, of course, a tradeoff, and one could easily envision doing more fragmentation permutations without going for the exhaustive list.
What do you think?
/n
--
Spotify Free Software coordinator, strategist and possibly even evangelist. I/O Tribe.