The IDNA conformance ratchet (IdnaConformanceTest / IdnaConformanceKnownFailures.kt) is derived by running tools/internal/idnaref — a Go port of kuri's own Idna.domainToAscii — over the WPT corpora, and asserting the live failing set equals that baseline. idnaref's own doc comment says as much: it's "a faithful Go port of kuri's Idna.domainToAscii."
That means a conceptual bug shared between the Kotlin engine and its Go port (e.g. a shared misreading of the UTS-46 algorithm) would reproduce identically in both and pass the ratchet undetected. In practice the exposure is limited: the same test suite also checks every case directly against the WPT corpus itself (a genuinely independent oracle), so this only matters for whatever WPT doesn't exercise.
Proposal: make it explicit in the suite's docs/comments that WPT — not idnaref — is the real independent oracle, and consider optionally cross-checking against a third-party ToASCII implementation (e.g. ICU) in CI for additional confidence beyond WPT's coverage.
The IDNA conformance ratchet (
IdnaConformanceTest/IdnaConformanceKnownFailures.kt) is derived by runningtools/internal/idnaref— a Go port of kuri's ownIdna.domainToAscii— over the WPT corpora, and asserting the live failing set equals that baseline.idnaref's own doc comment says as much: it's "a faithful Go port of kuri'sIdna.domainToAscii."That means a conceptual bug shared between the Kotlin engine and its Go port (e.g. a shared misreading of the UTS-46 algorithm) would reproduce identically in both and pass the ratchet undetected. In practice the exposure is limited: the same test suite also checks every case directly against the WPT corpus itself (a genuinely independent oracle), so this only matters for whatever WPT doesn't exercise.
Proposal: make it explicit in the suite's docs/comments that WPT — not
idnaref— is the real independent oracle, and consider optionally cross-checking against a third-party ToASCII implementation (e.g. ICU) in CI for additional confidence beyond WPT's coverage.