github.com/google/uuid — validation proof

Go’s own github.com/google/uuid 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, and written beside the conversion: it is not a row of go2cs’s standard-library roster.

Validated 2026-10-09

54 matched · 0 disclosed — Go 1.24.13, linux/amd64, converted package src/github.com/google/uuid.

Measured at Release (tiered JIT off), oracle go version go1.24.13 linux/amd64, with no controlling terminal.

Both sides were built with -tags purego,math_big_pure_go,safe.

Input digest sha256-1d40aaa871f4e430ac651e70e05593f11e9ed13539146378156e81f13af51b28: the package’s Go sources, conversion options, target and converter, as its project records them (GoInputDigest).

Both runtimes skip 1 of the matched tests identically.

Upstream test race, cited and not disclosed (COORD ruling, 2026-10-09): TestVersion6 can fail on either runtime with “time reversed”. In google/uuid v1.6.0, NewV6 writes the version nibble over bits 12-15 of the timestamp and Time() reads those bits back, so the test fails whenever the timestamp crosses a multiple of 409.6 microseconds between its two NewV6 calls. Native Go fails it about 3 times in 20,000 runs. This proof is a run in which both sides passed.

Verdicts

Test go test go2cs
TestBadRand pass pass
TestClockSeq pass pass
TestClockSeqRace skip skip
TestCoding pass pass
TestConstants pass pass
TestDCE pass pass
TestFromBytes pass pass
TestIsWrongLength pass pass
TestJSON pass pass
TestJSONUnmarshal pass pass
TestJSONUnmarshal/empty pass pass
TestJSONUnmarshal/null pass pass
TestJSONUnmarshal/omitempty pass pass
TestJSONUnmarshal/success pass pass
TestJSONUnmarshal/zero pass pass
TestMD5 pass pass
TestNew pass pass
TestNode pass pass
TestNodeAndTime pass pass
TestNodeID pass pass
TestNullUUIDMarshalBinary pass pass
TestNullUUIDMarshalJSON pass pass
TestNullUUIDMarshalText pass pass
TestNullUUIDScan pass pass
TestNullUUIDUnmarshalJSON pass pass
TestNullUUIDUnmarshalText pass pass
TestNullUUIDValue pass pass
TestRandPool pass pass
TestRandomFromReader pass pass
TestRandomUUID pass pass
TestRandomUUID_Pooled pass pass
TestSHA1 pass pass
TestScan pass pass
TestSetRand pass pass
TestUUID pass pass
TestValidate pass pass
TestValidate/Invalid_Brackets pass pass
TestValidate/Invalid_Length pass pass
TestValidate/Invalid_URN_Prefix pass pass
TestValidate/Invalid_UUID pass pass
TestValidate/Invalid_UUID_Format pass pass
TestValidate/Valid_UUID pass pass
TestValidate/Valid_UUID_No_Hyphens pass pass
TestValidate/Valid_UUID_with_Braces pass pass
TestValidate/Valid_UUID_with_URN pass pass
TestValue pass pass
TestVersion1 pass pass
TestVersion6 pass pass
TestVersion7 pass pass
TestVersion7FromReader pass pass
TestVersion7Monotonicity pass pass
TestVersion7MonotonicityStrict pass pass
TestVersion7_pooled pass pass
TestWrongLength pass pass

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.