Validated Test Packages
The packages below have had their own Go test suites (Go 1.23.1) converted to C#, built against
the converted standard library, run under the Go-semantics test host, and differentially compared
against a clean go test -json baseline — verdict for verdict. A package is listed only when every
Test function’s result matches go test (Example/Benchmark execution is uniformly deferred).
See Try it yourself to reproduce any
row from a clone with one command.
A few packages carry disclosed divergences: Go tests that assert an exact allocation count,
which the managed CLR provably cannot satisfy (Go’s compiler stack-allocates where .NET must heap-
allocate). Each is pinned by exact failure signature in a hand-owned, committed
go2cs_test_disclosures.json —
any other failure is still a hard mismatch.
Phase 4 progress: 43 / 215 testable packages validated — 20.0%
1,078 matching test verdicts · 21 disclosed (updated 2026-07-25 — maintained as part of the Phase-4 validation campaign and grows as packages validate. Denominator: the 215 of 302 converted standard-library packages whose Go 1.23.1 sources define
Testfunctions.)
| Package | Tests | Disclosed | What it exercises |
|---|---|---|---|
bytes |
81 | 7 | Byte-slice algorithms; alloc-profile disclosures. |
cmp |
4 | Generics with an ordered-type constraint. | |
container/heap |
7 | Heap interface over a slice. | |
container/list |
10 | Doubly-linked list — pointers and receiver methods. | |
container/ring |
8 | Circular linked list — a pointer graph. | |
encoding/ascii85 |
9 | Ascii85 encode/decode and streaming wrappers. | |
encoding/base32 |
26 | Base32 round-trips; io.Pipe rendezvous over the real channel core. |
|
encoding/base64 |
17 | Base64 round-trips; goroutine + time.After timer path. |
|
encoding/binary |
137 | 9 | Reflection-driven Read/Write — the bridge’s construction/write-back surface. |
encoding/csv |
71 | CSV parsing; wrapped-error errors.Is through the reflection bridge. |
|
encoding/hex |
12 | Hex encode/decode and error paths. | |
encoding/pem |
8 | PEM block parsing and round-trips. | |
errors |
61 | errors.Is/As/Join — reflection-bridge write-back (Value.Set, addressability). |
|
go/build/constraint |
89 | Build-constraint expression parsing. | |
go/version |
3 | Go version-string comparison. | |
hash/adler32 |
2 | Adler-32 checksum. | |
hash/crc32 |
10 | CRC-32 including real SSE4.2/PCLMULQDQ hardware paths via managed intrinsics. | |
hash/crc64 |
5 | CRC-64 checksum tables. | |
hash/fnv |
19 | FNV-1/FNV-1a across widths. | |
internal/abi |
2 | Runtime ABI helpers (FuncPC). |
|
internal/coverage/slicereader |
1 | Coverage slice reader. | |
internal/coverage/slicewriter |
1 | Coverage slice writer. | |
internal/gover |
5 | Toolchain version ordering. | |
internal/itoa |
3 | Minimal integer formatting. | |
internal/saferio |
17 | Allocation-capped I/O helpers. | |
io/fs |
18 | The fs.FS interface family — named-interface runtime shells, fs.Glob deep recursion, dirFS walks. |
|
maps |
14 | Generic map helpers and iterators. | |
math |
76 | The core numeric package — IEEE edge cases, rounding, Inf/NaN. |
|
math/bits |
26 | Bit-manipulation intrinsics. | |
math/cmplx |
24 | complex128 transcendental math. |
|
math/rand |
43 | PRNG streams, including a child-process race test. | |
math/rand/v2 |
36 | The v2 PRNG API (PCG, ChaCha8). | |
net/http/internal/ascii |
13 | ASCII case-insensitive helpers. | |
os/signal |
1 | Console-signal delivery (Ctrl+Break) through real channels and select. |
|
path |
9 | Pure path manipulation (Clean/Split/Join/Match…). |
|
sort |
63 | Interface-driven sort, sort.Slice reflection swaps, NaN-aware ordering, stability. |
|
strings |
68 | 4 | String algorithms; alloc-count/alloc-profile disclosures. |
testing/quick |
8 | Property testing — reflect value generation and Value.Call dynamic invocation. |
|
text/scanner |
18 | Rune-level source scanning. | |
text/tabwriter |
3 | Elastic-tab column formatting; panic-during-write recovery. | |
unicode |
28 | Category tables, case mapping (SpecialCase), script ranges. |
|
unicode/utf16 |
8 | 1 | Encode/decode round-trips via reflect.DeepEqual. |
unicode/utf8 |
14 | UTF-8 encode/decode — the first suite to pass (2026-07-17). |