internal/runtime/gc/scan — validation proof
Go’s own internal/runtime/gc/scan 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/runtime/gc/scan row in
Validated Test Packages.
Validated 2026-11-08 · converter 485051f31
19 matched · 0 disclosed — Go 1.26.10, windows/amd64, converted package
src/core/internal/runtime/gc/scan.
Measured at Release (tiered JIT off), oracle go version go1.26.10 windows/amd64.
Both runtimes skip 4 of the matched tests identically.
Verdicts
| Test | go test |
go2cs |
|---|---|---|
TestExpandAVX512 |
skip | skip |
TestFilterNil |
pass | pass |
TestFilterNil/Multi |
pass | pass |
TestFilterNil/elimOne |
pass | pass |
TestFilterNil/empty |
pass | pass |
TestFilterNil/one |
pass | pass |
TestFilterNil/oneElimBegin |
pass | pass |
TestFilterNil/oneElimEnd |
pass | pass |
TestFilterNil/oneElimMulti |
pass | pass |
TestFilterNil/oneElimMultiBegin |
pass | pass |
TestFilterNil/oneElimMultiEnd |
pass | pass |
TestFilterNil/two |
pass | pass |
TestFilterNil/twoElimBegin |
pass | pass |
TestFilterNil/twoElimEnd |
pass | pass |
TestFilterNil/twoElimMid |
pass | pass |
TestFilterNil/twoElimMulti |
pass | pass |
TestFilterNilAVX512 |
skip | skip |
TestScanSpanPackedAVX512 |
skip | skip |
TestScanSpanPackedGo |
skip | skip |
Withdrawn where a shipped architecture does not build the test
One converted build of a GOOS serves every RID it ships, and the roster banks one count for it. A test whose file one of those architectures does not build is therefore withdrawn from both sides on that GOOS, on every RID, and is not claimed by that GOOS’s count. It still runs, and is compared, on every GOOS that builds it:
- darwin:
TestExpandAVX512— expand_amd64_test.go is not built for darwin/arm64 (//go:build amd64); one darwin build serves both RIDs - darwin:
TestFilterNilAVX512— filter_amd64_test.go is not built for darwin/arm64 (//go:build amd64); one darwin build serves both RIDs - darwin:
TestScanSpanPackedAVX512— scan_amd64_test.go is not built for darwin/arm64 (//go:build amd64); one darwin build serves both RIDs
Excluded declarations
Declarations filtered from both sides of the comparison, and therefore not claimed above:
Benchmark, Fuzz and Example declarations the converted host does not execute, plus any
test requiring a capability the managed runtime does not provide — a testing member the host
has not implemented, or a platform behavior it provably cannot reproduce. Each is named with
the capability it needs.
- BenchmarkScanMaxBandwidth (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkScanSpanPacked (benchmark): benchmark execution is deferred to Phase 4D