|
|
42765282a3
|
test(criteria): 判据自行补齐前端嵌入产物,保证在干净 clone 上可复现
internal/httpapi 用 //go:embed all:dist 嵌入前端,dist 是构建期产物且被
.gitignore 排除。干净 clone 上直接 go build 会报
"pattern all:dist: no matching files found"——这是基线既有状态,与本判据
要验证的东西无关,但会让判据在任意 checkout 上都红,失去可复现性。
现在若 dist 缺失就先 cd web 构建并拷回 internal/httpapi/dist(无 npm 时
给出明确的失败原因与手工步骤)。已实测:删掉 dist 后跑判据可自动补齐并全绿。
|
2026-10-23 09:19:27 +08:00 |
|
|
|
f6c877b736
|
test(criteria): 收紧失败语义判据——只认「没进入监听」,并改用空闲端口
复核发现「坏 JSON 静默忽略」这条变异没被咬住:原判据只看退出码,而错误串
里本来就含 invalid JSON、端口又固定在 17699,实现把 Fatal 改成打日志后仍
可能因端口冲突拿到非零退出码,于是被误判为"已正确报错"。
- 新增 assert_died_before_listen:只要日志里出现 "listening on",就判失败。
配置非法时进程必须启动前退出,不能带着默认口令继续提供服务。
- 所有启动分支改用 free_port 分配空闲端口——判据不能依赖宿主机上恰好没有
进程占用固定端口(默认 7500 上通常就有生产实例)。
- 顺带断言配置文件里的 addr 真的生效(必须在该端口上监听),避免"进程活着"
被当成"配置生效"。
|
2026-10-23 09:17:09 +08:00 |
|
|
|
ed62fd97a4
|
test(criteria): 坏 JSON / 未知键分支加超时兜底
判据要求「文件存在但不合法时非零退出」。若实现退化成只记日志继续启动,
进程会一直运行而不是报错——原写法会把判据自己挂死,现在用 timeout 兜底
并把 exit 124 明确判为失败(静默忽略),保证反向变异能被咬住。
|
2026-10-23 09:14:32 +08:00 |
|
|
|
f4d4e3cd52
|
test(criteria): 新增「配置文件启动 + 口令不泄漏」判据脚本
scripts/criteria/config-startup.sh 一条命令跑完正向判据:
构建与全量测试、优先级回归测试、配置文件启动后端到端验证
(/proc/<pid>/cmdline 与启动日志均不得出现明文口令)、
非法 JSON 必须非零退出、未知键必须被拒绝、文件缺失必须回落纯 flag、
交付的单元与示例配置不得含 -password。
退出码 0 = 通过,可直接在 CI / 复核里跑。
|
2026-10-23 09:13:29 +08:00 |
|