1. Check all your statements about support against the relevant RFCs. When your code states that something is optional, there should be a comment in the source code naming the precise location of the corresponding MAY/SHOULD in the RFC.
Allow me to second this excellent advice. We tried hard to make the EAI documents as clear and as unambiguous as possible, and all tests should be referenced against the relevant standards section. As a concrete example, RFCs 6531 (sec 3.3) and 6532 (secs 3.1 and 3.2) make it utterly clear that the local part of an address is UTF-8, preferably unnormalized. It is not punycode. Any mail system that treats a local part as punycode has not correctly implented EAI, and will not interoperate with standard compliant software. Can we please end this unproductive digression now? Regards, John Levine, johnl@iecc.com, Primary Perpetrator of "The Internet for Dummies", Please consider the environment before reading this e-mail. https://jl.ly PS: In a previous project at Standcore we developed an extensive DNS conformance suite, and we carefuly referenced each test against the relevant section of the standard documents. This let us be confident that the tests were correct, and helped test users bring their software into conformance if a test failed.