diff --git a/.cocoon-plan.md b/.cocoon-plan.md index ad166f1..6d4c480 100644 --- a/.cocoon-plan.md +++ b/.cocoon-plan.md @@ -54,15 +54,14 @@ - [x] **反向代理负载均衡** — 轮询调度 + 故障自动转移,多后端支持(最多8个)✅ 2026-06-08 - [x] **Prometheus 指标端点** — `/_metrics` 导出 10 项指标,响应码分类计数器 ✅ 2026-06-08 -## 项目状态:恢复开发 +## 当前状态:恢复开发 > **注意**:用户已指示恢复 cocoon 开发,继续推进新功能。不暂停。 -- 所有 Phase 1-4 核心功能已完成(反向代理负载均衡 + Prometheus 指标 + 虚拟主机 + 主动健康检查已加入) +- 所有 Phase 1-4 核心功能已完成 - 编译通过,零警告 -- **159 个单元测试全部通过**(新增 17 项 healthcheck 单元测试) + **106 项集成测试全部通过**(新增 3 项虚拟主机测试) -- 当前仅做编译和测试验证,不添加新代码 - +- **190 个单元测试全部通过**(新增 31 项 proxy 单元测试) + **106 项集成测试全部通过** +- 待办池:HTTP/2 代理流式转发(优化项) ## 待办池(活跃) 1. ~~HTTP/2 代理支持~~ ✅ 2026-06-09 2. ~~连接池 HTTP/1.0 兼容~~ ✅ 2026-06-09 @@ -73,6 +72,22 @@ ## 最近行动记录 +- 2026-06-09 21:00: **proxy 模块单元测试(31项)** + - 新增 `tests/unit/test_proxy.c`:31 项单元测试,白盒包含 `proxy.c` 访问 static 函数 + - `proxy_init`:配置初始化清零 + - `proxy_add_rule`:添加规则、追加后端、参数校验(空值/空字符串) + - `proxy_match`:精确匹配、前缀匹配、多规则、NULL参数 + - `select_backend_sww`:平滑加权轮询(单后端、等权重分布、不等权重 3:1 严格验证、跳过不健康、全部不健康返回 NULL) + - `select_backend_sww_all`:fallback 包含不健康后端 + - `parse_backend_url`:http/https/无 scheme/无端口/带路径解析 + - `proxy_build_forwarded_path`:无目标路径、有目标路径拼接、空剩余路径 + - `proxy_update_health`:成功阈值恢复(2次)、失败阈值标记(3次)、计数器重置 + - `proxy_pool_init`:默认大小、超过上限裁剪(16)、零值回退默认(4) + - `Makefile`:新增 `test_proxy` 编译规则 + - `.gitignore`:补全 `test_healthcheck` / `test_proxy` 二进制忽略 + - 编译零警告,190 个单元测试 + 106 项集成测试全部通过 + - 提交已推送到 `main` (`5d4c78c`) + - 2026-06-09 18:00: **主动健康检查单元测试** - 新增 `tests/unit/test_healthcheck.c`:17 项单元测试 - `healthcheck_parse_status`:覆盖 200/404/500/100/302/503 正常解析、长度不足、非 HTTP 协议、非法状态码