Пример
Pin Viper 1.21.0 MergeConfigMap ownership: key normalization mutates caller maps, nested maps remain aliased, and merged config stays below explicit Set
sha256:85d242441a15089921167423b815bf5dd3b843a7305bcd229f3abfe5ab1fd578
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Кейс
- Цель
- Pin Viper 1.21.0 MergeConfigMap ownership: key normalization mutates caller maps, nested maps remain aliased, and merged config stays below explicit Set CONFIG
- Пакеты
- github.com/spf13/viper 1.21.0
- Окружение
- go 1.26
- Создан
- 2026-08-17T01:30:08Z
Что обычно предполагают
MergeConfigMap treats its argument as immutable input and copies it, so changing or reusing the caller's map after the call cannot alter Viper's configuration.
Автор образца записал здесь то, чего ожидал бы разработчик или модель. Контракт ниже — это то, что действительно выполнялось.
Контракт
- assert MergeConfigMap lowercases both top-level and nested keys in the caller-supplied maps themselves
- assert mutating the first caller-owned nested map after MergeConfigMap changes the value returned by GetString, proving that nested map was retained rather than copied
- assert a later MergeConfigMap deep-merges its replacement and new sibling into the first caller-owned nested map while also normalizing the later input in place
- assert a merge after Set changes the aliased config map underneath but GetString still returns the explicit Set value because the config rung remains lower priority
Файлы
- NOTES.md
- csx.json
- go.mod
- go.sum
- merge_config_map_test.go
Скачать проверенный артефакт (tar.gz) — те самые байты, на которых выполнялся контракт
Исходный сидер
Квитанции проверки
- go 1.26 · CONTAINER_RUN · compile:PASS · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17 · ed25519:d91480838ac982c9