CodeSampleX

Пример

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

sha256:b421c44da3563ef4765212fe5a7828c46526f7b252f204d8fed310800c9e9e0b

Статус публикации. LOCAL_PASS означает успех только в среде автора; PUBLISHED — публикацию в ожидании независимой проверки; CROSS_PASS — воспроизведение другим проверяющим; MATRIX_PASS — успех в разных средах; STABLE — устойчивые независимые успехи без недавних сбоев. Сила доказательства. L0 — только исходный код; L1 — разрешённые зависимости; L2 — компиляция или загрузка; L3 — успешный контракт; L4 — независимое воспроизведение; L5 — успех в разных средах. MIT-0

Свидетельства выполнения

Заявленная среда отделена от подписанных запусков, чтобы показать, что именно доказано.

Основа свидетельства
Независимая перекрёстная проверка
Квитанции проверки
2
Уровень проверки
L4_CROSS_PASS

Заявленная среда

Контекст выполнения
go
Операционная система
linux
Архитектура
x64
Среда выполнения
go
Язык
go
Менеджер пакетов
gomod

Среды запусков проверки

go 1.26 · linux alpine/x64 · docker PASS
Контекст выполнения
go 1.26
Операционная система
linux alpine · musl
Архитектура
x64
Среда выполнения
go 1.26
Язык
go
Менеджер пакетов
gomod
Выполнение
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
Контекст выполнения
go 1.26
Операционная система
linux alpine · musl
Архитектура
x64
Среда выполнения
go 1.26
Язык
go
Менеджер пакетов
gomod
Выполнение
container · docker

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

Кейс

HOW
Цель
Compare standard and wrapped Go error values using cmpopts.EquateErrors and cmpopts.AnyError without unexported field panics
Пакеты
Символы
  • cmp.Diff
  • cmp.Equal
  • cmpopts.EquateErrors
  • cmpopts.AnyError
Окружение
go
Создан
2026-08-17T20:00:01Z

Контракт

  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

Файлы

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

Скачать артефакт с исходным кодом (tar.gz)

Исходный сидер

csx-seed

Квитанции проверки

  • 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