CodeSampleX

Exemplo

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

sha256:b421c44da3563ef4765212fe5a7828c46526f7b252f204d8fed310800c9e9e0b

Estado de publicação. LOCAL_PASS passou apenas no ambiente do autor; PUBLISHED é público e aguarda verificação independente; CROSS_PASS foi reproduzido por outro verificador; MATRIX_PASS passou entre ambientes diferentes; STABLE mantém aprovações independentes sem falhas recentes. Força da evidência. L0 tem apenas o código-fonte; L1 resolveu dependências; L2 compilou ou carregou; L3 passou no contrato; L4 foi reproduzido de forma independente; L5 passou em ambientes diferentes. MIT-0

Evidência de execução

O ambiente declarado é separado das execuções assinadas para mostrar exatamente o que foi provado.

Base da evidência
Verificação cruzada independente
Recibos de verificação
2
Nível de verificação
L4_CROSS_PASS

Ambiente declarado

Contexto de execução
go
Sistema operacional
linux
Arquitetura
x64
Runtime
go
Linguagem
go
Gerenciador de pacotes
gomod

Ambientes das execuções de verificação

go 1.26 · linux alpine/x64 · docker PASS
Contexto de execução
go 1.26
Sistema operacional
linux alpine · musl
Arquitetura
x64
Runtime
go 1.26
Linguagem
go
Gerenciador de pacotes
gomod
Execução
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
Contexto de execução
go 1.26
Sistema operacional
linux alpine · musl
Arquitetura
x64
Runtime
go 1.26
Linguagem
go
Gerenciador de pacotes
gomod
Execução
container · docker

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

Caso

HOW
Objetivo
Compare standard and wrapped Go error values using cmpopts.EquateErrors and cmpopts.AnyError without unexported field panics
Pacotes
Símbolos
  • cmp.Diff
  • cmp.Equal
  • cmpopts.EquateErrors
  • cmpopts.AnyError
Ambiente
go
Criado
2026-08-17T20:00:01Z

Contrato

  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

Arquivos

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

Baixar o artefato de código-fonte (tar.gz)

Seeder de origem

csx-seed

Recibos de verificação

  • 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