test(quality): promote overlay coverage to core gate
This commit is contained in:
@@ -2076,5 +2076,61 @@
|
|||||||
- `internal/app`
|
- `internal/app`
|
||||||
- `internal/routing`
|
- `internal/routing`
|
||||||
- `internal/store/sqlite`
|
- `internal/store/sqlite`
|
||||||
- 剩余 `watch` 候选只剩:
|
|
||||||
|
## 2026-05-30 已将 internal/overlay 从 watch 提升为 core
|
||||||
|
|
||||||
|
**目标**:把 overlay patch 执行层纳入硬门槛。虽然它是工具包,但它直接决定:
|
||||||
|
|
||||||
|
- host overlay patch 是否真正打到输出目录
|
||||||
|
- overlay metadata 是否正确落盘
|
||||||
|
- patch 产物是否污染源目录或 `.git`
|
||||||
|
|
||||||
|
这层一旦回归,影响的是部署产物正确性,不适合继续只做观察告警
|
||||||
|
|
||||||
|
**评估结果**:
|
||||||
|
|
||||||
|
- `go test -coverprofile=/tmp/internal-overlay.cover ./internal/overlay` => `coverage: 71.6% of statements`
|
||||||
|
- 现有测试覆盖面已包含:
|
||||||
|
- `Apply` 的正常 patch 流
|
||||||
|
- 相对 `pack dir` 支持
|
||||||
|
- nested output dir 拒绝
|
||||||
|
- missing patch 拒绝
|
||||||
|
- metadata 写入
|
||||||
|
- `.git` 过滤
|
||||||
|
- symlink 保留
|
||||||
|
- 当前低覆盖点主要集中在:
|
||||||
|
- `applyPatchFile`
|
||||||
|
- `Apply`
|
||||||
|
- `copyFile`
|
||||||
|
- 这些缺口主要是错误分支与 IO 边角,不影响把该包提升为 `core`,因为关键 overlay 主路径和最容易出事故的文件系统行为已经有测试覆盖
|
||||||
|
|
||||||
|
**本次调整**:
|
||||||
|
|
||||||
|
- `tests/quality/coverage_thresholds.tsv`
|
||||||
|
- `internal/overlay`
|
||||||
|
- tier:`watch -> core`
|
||||||
|
- threshold:`70.0` 保持不变
|
||||||
|
|
||||||
|
**验证结果**:
|
||||||
|
|
||||||
|
- `gofmt -l .` => clean
|
||||||
|
- `go vet ./...` => `ok`
|
||||||
|
- `go test -cover ./internal/...` => `ok`
|
||||||
|
- `go test ./tests/integration/... -count=1` => `ok`
|
||||||
|
- `bash ./scripts/test/verify_quality_gates.sh` => `PASS`
|
||||||
|
- 统一门禁回读:
|
||||||
|
- `internal/overlay = 71.6%`
|
||||||
|
- 高于新的 `core` 门槛 `70.0%`
|
||||||
|
|
||||||
|
**结论**:
|
||||||
|
|
||||||
|
- `internal/overlay` 已完成第四批 `watch -> core` 升级
|
||||||
|
- 当前覆盖率治理中的显式 `watch` 包已清零
|
||||||
|
- 当前 `core` 包集合变为:
|
||||||
|
- `internal/access`
|
||||||
|
- `internal/pack`
|
||||||
|
- `internal/provision`
|
||||||
|
- `internal/app`
|
||||||
|
- `internal/routing`
|
||||||
|
- `internal/store/sqlite`
|
||||||
- `internal/overlay`
|
- `internal/overlay`
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ internal/access core 70.0 core access closure logic
|
|||||||
internal/pack core 70.0 pack loading and validation
|
internal/pack core 70.0 pack loading and validation
|
||||||
internal/provision core 70.0 provider import orchestration
|
internal/provision core 70.0 provider import orchestration
|
||||||
internal/app core 70.0 HTTP control plane is now above 70 and must stay as a hard gate
|
internal/app core 70.0 HTTP control plane is now above 70 and must stay as a hard gate
|
||||||
internal/overlay watch 70.0 utility package should stay above a healthy baseline
|
internal/overlay core 70.0 overlay patch execution affects real deployment artifacts and must stay as a hard gate
|
||||||
internal/routing core 70.0 route resolve and sticky runtime are product-critical and must stay above the hard gate
|
internal/routing core 70.0 route resolve and sticky runtime are product-critical and must stay above the hard gate
|
||||||
internal/store/sqlite core 75.0 sqlite repo layer is high leverage and must stay as a hard gate
|
internal/store/sqlite core 75.0 sqlite repo layer is high leverage and must stay as a hard gate
|
||||||
|
|||||||
|
Reference in New Issue
Block a user