internal/abi — validation proof

Go’s own internal/abi test suite, converted to C# by go2cs, built against the converted standard library, run under the Go-semantics test host, and compared verdict for verdict against a clean go test -json baseline of the same sources. This page is generated by the converter from that comparison — it is the evidence behind the internal/abi row in Validated Test Packages.

Validated 2026-09-03 · converter 8873a1437

1 matched · 1 disclosed — Go 1.23.12, linux/amd64, converted package src/core/internal/abi.

Measured at Release (tiered JIT off), oracle go version go1.23.12 linux/amd64.

Verdicts

Test go test go2cs
TestFuncPC pass fail (disclosed)
TestFuncPCCompileError pass pass

Disclosed divergences

A disclosed divergence is a specific Go assertion the managed CLR provably cannot satisfy — not a skipped test and not a tolerance. Each one is pinned by exact failure signature in the package’s hand-owned go2cs_test_disclosures.json; a disclosed test that fails any other way is still a hard mismatch.

Test Class Pinned reason
TestFuncPC runtime-capability the test compares FuncPCABI0(FuncPCTestFn) against FuncPCTestFnAddr, and Go writes that expected value from _test.s – assembly the pipeline never converts. So the managed side has no real code address on EITHER arm: FuncPCTestFn is a bodyless partial with no managed body, and FuncPCTestFnAddr is declared, read, and never written. Until 2026-09-03 both arms were 0 and the row passed VACUOUSLY, matching Go’s pass for the opposite reason (a real address on both sides); the synthetic-PC registry replaced that silent zero with a loud refusal, which is the signature pinned here. It cannot be retired by making the registry more complete: a token for an assembly routine is refused BY CONSTRUCTION (DESIGN-synthetic-pc-registry.md, class C) because it would be dereferenced or compared as an address, and there is nothing to resolve it to. Retirement needs a real code address for FuncPCTestFn on both arms, which this port has no mechanism to produce, so this entry may be permanent.