$ the-wire · showcase
CRYPTO/TLS TEST HARNESS GETS TEETH, COMPILER SHEDS DEADWEIGHT
By RepoJournal · Filed · About Go · Composed from the cited sources · methodology
Go's TLS test suite now actually catches errors it was silently dropping, while the compiler trims fat and JSON encoding ditches generics that were creating more problems than they solved.
The crypto/tls test infrastructure got a critical fix overnight [1]. Before, recorded TLS handshake tests would swallow both OpenSSL and client/server errors, replay transcripts that included partial failures, then ignore those same errors on playback—defeating the entire point of regression testing. Adding -naccept 1 to s_server arguments now forces clean exits after single connections, finally surfacing real errors. In parallel, the compiler shed unnecessary deadcode [2] as cleanup continues, and encoding/json ditched its generic implementations [3] after discovering the underlying utf8 package couldn't support them without allocations—a lesson in when generics create more friction than they eliminate. FreeBSD+race test isolation [4] and TLS handshake regeneration [5] address platform-specific flakiness. Across the ecosystem, vulndb locked toolchain requirements [6], gopls fixed a parameter type alias renaming bug [7], and ACME OrderError now includes actual problem details instead of burying diagnostics [9]. The ARM64 SVE store instruction generation [10] keeps instruction operand ordering consistent. Scattered flakiness in gopls [8] continues to demand attention, but the core improvements here strengthen the testing and diagnostics foundations everyone depends on.
Action items
- → Pull latest golang/go after crypto/tls fixes land — your TLS tests now actually work golang/go [plan]
- → Review your ACME integration error handling — OrderError.Error() is now actually useful golang/crypto [monitor]
- → Check if you're vendoring encoding/json internals — generic cleanup may affect you golang/go [plan]
References
- [1] crypto/tls: fix error handling in recorded test connections ↗ golang/go
- [2] cmd/compile: remove deadcode ↗ golang/go
- [3] encoding/json/internal/jsonwire: remove generic implementations ↗ golang/go
- [4] runtime: disable CgoCallbackX15 test on freebsd+race ↗ golang/go
- [5] crypto/tls: clean up and regenerate server recorded test handshakes ↗ golang/go
- [6] go.mod: make go1.26.2 toolchain requirement explicit ↗ golang/vulndb
- [7] go/analysis/passes/inline: fix bug renaming param type aliases ↗ golang/tools
- [8] gopls/integration/misc: Test61208 flaky ↗ golang/tools
- [9] acme: include Problem in OrderError.Error ↗ golang/crypto
- [10] arm64/instgen: make addr the last op in SVE stores ↗ golang/arch