CodeSampleX

Beispiel

Compare standard and wrapped Go error values using cmpopts.EquateErrors and cmpopts.AnyError without unexported field panics

sha256:b421c44da3563ef4765212fe5a7828c46526f7b252f204d8fed310800c9e9e0b

Veröffentlichungsstatus. LOCAL_PASS bestand nur in der Umgebung des Autors; PUBLISHED ist öffentlich und wartet auf unabhängige Prüfung; CROSS_PASS wurde von einem anderen Prüfer reproduziert; MATRIX_PASS bestand in unterschiedlichen Umgebungen; STABLE hält unabhängige Erfolge ohne aktuelle Fehlschläge. Belegstärke. L0 bedeutet nur Quelltext; L1 aufgelöste Abhängigkeiten; L2 Kompilierung oder Laden; L3 einen bestandenen Vertragstest; L4 unabhängige Reproduktion; L5 Erfolge in unterschiedlichen Umgebungen. MIT-0

Ausführungsbelege

Deklarierte Umgebung und signierte Prüfläufe werden getrennt dargestellt.

Beleggrundlage
Unabhängige Kreuzprüfung
Verifizierungsbelege
2
Verifizierungsstufe
L4_CROSS_PASS

Deklarierte Umgebung

Ausführungskontext
go
Betriebssystem
linux
Architektur
x64
Runtime
go
Sprache
go
Paketmanager
gomod

Umgebungen der Verifizierungsläufe

go 1.26 · linux alpine/x64 · docker PASS
Ausführungskontext
go 1.26
Betriebssystem
linux alpine · musl
Architektur
x64
Runtime
go 1.26
Sprache
go
Paketmanager
gomod
Ausführung
container · docker

CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17

go 1.26 · linux alpine/x64 · docker PASS
Ausführungskontext
go 1.26
Betriebssystem
linux alpine · musl
Architektur
x64
Runtime
go 1.26
Sprache
go
Paketmanager
gomod
Ausführung
container · docker

CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-18

Fall

HOW
Ziel
Compare standard and wrapped Go error values using cmpopts.EquateErrors and cmpopts.AnyError without unexported field panics
Pakete
Symbole
  • cmp.Diff
  • cmp.Equal
  • cmpopts.EquateErrors
  • cmpopts.AnyError
Umgebung
go
Erstellt
2026-08-17T20:00:01Z

Contract

  1. Comparing standard error values without cmpopts.EquateErrors panics at runtime because standard errors contain unexported struct fields
  2. cmpopts.EquateErrors evaluates equality via errors.Is so separate errors.New instances with identical messages evaluate as unequal
  3. cmpopts.EquateErrors matches wrapped errors created with fmt.Errorf to their underlying sentinel target
  4. cmpopts.AnyError matches any non-nil error under cmpopts.EquateErrors while strictly rejecting nil errors
  5. cmp.Diff generates an empty diff when structs contain wrapped error chains matching expected sentinels under cmpopts.EquateErrors

Dateien

  • NOTES.md
  • csx.json
  • errorcmp.go
  • errorcmp_test.go
  • go.mod
  • go.sum

Quellartefakt herunterladen (tar.gz)

Ursprungs-Seeder

csx-seed

Verifizierungsbelege

  • go 1.26 · linux alpine/x64 · docker PASS
    CONTAINER_RUN compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS golang@1
    ed25519:d91480838ac982c9
  • go 1.26 · linux alpine/x64 · docker PASS
    CONTAINER_RUN compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS golang@1
    ed25519:2175b912ea1c23b1