The Go code under tools/ has no tests — go test ./... reports "no test files" for every package. These packages are load-bearing:
tools/internal/codegen emits the committed Kotlin lookup tables and conformance fixtures.
tools/internal/ucd parses the Unicode Character Database.
tools/internal/idnaref is the reference implementation whose output derives the IDNA known-failures baseline that the Kotlin conformance suite ratchets against.
A bug in any of them can silently corrupt generated data or the derived baseline. Add Go unit tests, for example:
ucd: parsing of code-point ranges and First/Last blocks, hex-scalar fields, and the merged mapping / validity / NFC / Bidi tables over small fixtures.
idnaref: targeted ToASCII cases (mapping, NFC, Punycode round-trips, ContextJ, CheckBidi, decoded-A-label re-validation), plus spot-checks that its verdicts match the Kotlin runtime's expected behaviour.
codegen: the chunking / escaping helpers, the JSON lone-surrogate decoder, and byte-stable output from each generator.
Wire go test ./... into the contributor workflow (and into CI once it exists).
The Go code under
tools/has no tests —go test ./...reports "no test files" for every package. These packages are load-bearing:tools/internal/codegenemits the committed Kotlin lookup tables and conformance fixtures.tools/internal/ucdparses the Unicode Character Database.tools/internal/idnarefis the reference implementation whose output derives the IDNA known-failures baseline that the Kotlin conformance suite ratchets against.A bug in any of them can silently corrupt generated data or the derived baseline. Add Go unit tests, for example:
ucd: parsing of code-point ranges andFirst/Lastblocks, hex-scalar fields, and the merged mapping / validity / NFC / Bidi tables over small fixtures.idnaref: targeted ToASCII cases (mapping, NFC, Punycode round-trips, ContextJ, CheckBidi, decoded-A-label re-validation), plus spot-checks that its verdicts match the Kotlin runtime's expected behaviour.codegen: the chunking / escaping helpers, the JSON lone-surrogate decoder, and byte-stable output from each generator.Wire
go test ./...into the contributor workflow (and into CI once it exists).