Harden configuration boundaries with fuzz coverage
This commit is contained in:
@@ -1534,7 +1534,40 @@ Acceptance:
|
||||
|
||||
## Stage 21 — Harden boundaries and verify independent loads
|
||||
|
||||
Status: pending.
|
||||
Status: complete.
|
||||
|
||||
Completion evidence (2026-09-06):
|
||||
|
||||
- Added bounded fuzz targets `FuzzParsePath`, `FuzzParseDocument`, and
|
||||
`FuzzCompositionAndOverlay` for canonical pointer round trips, accepted YAML
|
||||
parse/write stability, composition order, overlay behavior, input immutability,
|
||||
and detached results. Each target has a small deterministic seed set and explicit
|
||||
byte, translated-node, and depth bounds; the exact 30-second, two-worker commands
|
||||
are recorded in the [developer guide](../development.md#fuzz-validation).
|
||||
- Added concurrent public-load coverage that shares one read-only `Definition` while
|
||||
each defaults factory returns fresh maps and slices. The test exercises custom
|
||||
text scalars, independently mutable results, and the frozen effective snapshot.
|
||||
A second load-level race test confirms copies of one `Reader` source compete for
|
||||
one atomic claim, producing exactly one success and one `source.reader_used`
|
||||
error.
|
||||
- Reviewed the existing exact-edge source-byte, aggregate import/profile byte/node,
|
||||
parser depth/node, schema traversal, typed projection, explanation-history, and
|
||||
writer-error tests. Those boundaries already cover consequential reads,
|
||||
traversal, projection, redacted rendering, and historical rendering, so no new
|
||||
public limits or duplicate edge tests were added. YAML anchors, aliases, and merge
|
||||
keys remain rejected; there is no provider extension gate or raw-secret rendering
|
||||
route.
|
||||
- Ran the three documented fuzz commands for 30 seconds each with `-parallel=2`.
|
||||
Path and YAML passed directly. The first composition campaign revealed that its
|
||||
initial fuzz-only bounds could leave an expensive case active at campaign
|
||||
shutdown; tightening them to 4 KiB per document, 256 translated nodes, depth 12,
|
||||
and parser depth 24 made the exact rerun pass without changing product behavior or
|
||||
requiring a regression corpus.
|
||||
- Verified `go test ./...`, `go test -race ./...`, `go vet ./...`, `go build ./...`,
|
||||
`go mod tidy -diff`, `git diff --check`, and a fresh
|
||||
`GOTOOLCHAIN=local GOPROXY=off go test ./...` with Go 1.26.7 on linux/amd64.
|
||||
Existing skips are explicit platform/filesystem-capability probes; no default test
|
||||
reads credentials, network services, or developer-specific configuration.
|
||||
|
||||
Read: testing policy, ownership/projection, import limits, redaction guarantees.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user