log/slog/internal/buffer — validation proof

Go’s own log/slog/internal/buffer 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 log/slog/internal/buffer row in Validated Test Packages.

Validated 2026-09-23 · converter f95f88866

1 matched · 1 disclosed — Go 1.24.13, windows/amd64, converted package src/core/log/slog/internal/buffer.

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

Verdicts

Test go test go2cs
Test pass pass
TestAlloc pass fail (disclosed)

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
TestAlloc alloc-count-semantics exact-zero AllocsPerRun assert over the pooled New/WriteString/deferred-Free round-trip: Go’s sync.Pool reuse plus escape analysis keeps the warm path allocation-free, while the converted path must heap-allocate what Go stack-allocates - the display class and delegate the C# compiler emits for the defer closure and the per-run test closure itself - measured 344 bytes per run by the byte-derived shim with NONE of it charged at golib sites (every object on the path is compiler-emitted or BCL-internal, so no malloc count exists and zero can never come back). Same shape as strings’ TestIndexRune and log’s TestDiscard. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off; claude/coord-h10-readings ac9f8251ee): alloc-profile -> alloc-count-semantics. The run’s own unit note is BYTES – 176 B/run, 880 bytes over 5 runs, golib’s counter charging none of it (the test printed got 176 allocs, want 0) – so no object count exists to compare with the want: the ladder’s incomparable-unit arm, which this reason already describes (344 bytes per run at r58a, 176 at this tree). Nothing to retire and no plan.