Adds some unit tests for the seeder's parse_name() function.
Depends on D4417
It seemed a little suspicious to me that these constants would be defined in the test. But after looking at the existing seeder source, it's clear that these magic values are mostly hardcoded everywhere. So while this is the right approach for now (to test existing behavior), I expect at least some of these constants to eventually move to more appropriate locations.
Why all these static casts?
On a second note, why not just push strings instead of this?
Honestly, this test is very hard to follow. The variable names are not meaningful (qname? inbuf?). There are magic numbers everywhere. Almost everything is mutated thourough the test such as it means different things at different points in time.
The whole thing is convoluted for no apparent reason. For instance, what does this achieve:
std::array<uint8_t, BUFFER_LENGTH> longInbuf; longInbuf.fill(0); longInbuf = CreateDNSMessage(longMessageQName);
std::array<uint8_t, BUFFER_LENGTH> longInbuf = CreateDNSMessage(longMessageQName);
I think this code would benefit a lot from a few passes of self review.