mime — validation proof
Go’s own mime 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 mime row in
Validated Test Packages.
Validated 2026-09-23 · converter f95f88866
17 matched · 1 disclosed — Go 1.24.13, windows/amd64, converted package
src/core/mime.
Measured at Release (tiered JIT off), oracle go version go1.24.13 windows/amd64.
Verdicts
| Test | go test |
go2cs |
|---|---|---|
TestCharsetDecoder |
pass | pass |
TestCharsetDecoderError |
pass | pass |
TestConsumeMediaParam |
pass | pass |
TestConsumeToken |
pass | pass |
TestConsumeValue |
pass | pass |
TestDecodeHeader |
pass | pass |
TestDecodeWord |
pass | pass |
TestEncodeWord |
pass | pass |
TestEncodedWordLength |
pass | pass |
TestExtensionsByType |
pass | pass |
TestExtensionsByType2 |
pass | pass |
TestFormatMediaType |
pass | pass |
TestLookupMallocs |
pass | fail (disclosed) |
TestParseMediaType |
pass | pass |
TestParseMediaTypeBogus |
pass | pass |
TestTypeByExtension |
pass | pass |
TestTypeByExtensionCase |
pass | pass |
TestTypeByExtension_LocalData |
pass | pass |
Disclosed divergences
A disclosed divergence is a specific Go assertion this conversion does not 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.
The Class column says which kind each one is: a deferred entry is an assertion the managed
CLR can meet, pinned against the named plan that will retire it; every other class is one it
provably cannot satisfy.
| Test | Class | Pinned reason |
|---|---|---|
TestLookupMallocs |
deferred |
want-zero AllocsPerRun assert: TypeByExtension’s converted lookup allocates in the managed runtime (sync.Map probe boxing and @string materialization) where Go’s compiled lookup runs allocation-free; a malloc-counting shim would fail identically. RELABEL 2026-09-23 (C1, as ruled at ledger 2026-09-23 03:37 O5): alloc-profile -> deferred. The census’s floor (the sync.Map probe’s any-boxing) is withdrawn: boxing is uncounted. |
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.
- BenchmarkExtensionsByType (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkQDecodeHeader (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkQDecodeWord (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkQEncodeWord (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkTypeByExtension (benchmark): benchmark execution is deferred to Phase 4D
- ExampleFormatMediaType (example): example execution is deferred to Phase 4D
- ExampleParseMediaType (example): example execution is deferred to Phase 4D
- ExampleWordDecoder_Decode (example): example execution is deferred to Phase 4D
- ExampleWordDecoder_DecodeHeader (example): example execution is deferred to Phase 4D
- ExampleWordEncoder_Encode (example): example execution is deferred to Phase 4D