修复:补充 Makefile 缺失的单元测试规则,清理误跟踪的编译产物
- 新增 test_http3 编译规则(Makefile 中缺少,导致单元测试编译失败) - 修正 test_sse 编译规则位置(从 #HTTP/3 注释下分离) - 清理误跟踪的 tests/unit/test_sse 编译二进制(git rm --cached) - 简化 .gitignore:将逐个列出的测试二进制文件替换为 tests/unit/test_* 通配模式 - 合并 SSE 集成测试的 curl || true 修复(防止 set -e 下超时退出) 编译零警告,451 单元测试 + 115 集成测试全部通过 ✓
This commit is contained in:
parent
fb35fef0db
commit
9258d67c08
14
.gitignore
vendored
14
.gitignore
vendored
@ -3,19 +3,7 @@
|
|||||||
cocoon
|
cocoon
|
||||||
|
|
||||||
# 忽略测试二进制文件和上传目录
|
# 忽略测试二进制文件和上传目录
|
||||||
tests/unit/test_config
|
tests/unit/test_*
|
||||||
tests/unit/test_http
|
|
||||||
tests/unit/test_log
|
|
||||||
tests/unit/test_multipart
|
|
||||||
tests/unit/test_static
|
|
||||||
tests/unit/test_server
|
|
||||||
tests/unit/test_websocket
|
|
||||||
tests/unit/test_healthcheck
|
|
||||||
tests/unit/test_proxy
|
|
||||||
tests/unit/test_grpc
|
|
||||||
tests/unit/test_http3
|
|
||||||
tests/unit/test_load_balance
|
|
||||||
tests/unit/test_middleware_ext
|
|
||||||
tests/fixtures/uploads/
|
tests/fixtures/uploads/
|
||||||
plugins/*.so
|
plugins/*.so
|
||||||
www/uploads/
|
www/uploads/
|
||||||
|
|||||||
4
Makefile
4
Makefile
@ -131,6 +131,10 @@ $(UNIT_TEST_DIR)/test_load_balance: $(UNIT_TEST_DIR)/test_load_balance.c load_ba
|
|||||||
$(CC) $(CFLAGS) -I. -I$(UNIT_TEST_DIR)/../unity -o $@ $(UNIT_TEST_DIR)/test_load_balance.c load_balance.c proxy.c proxy_tls.c http.c log.c platform.c $(UNITY_SRC) $(LDFLAGS)
|
$(CC) $(CFLAGS) -I. -I$(UNIT_TEST_DIR)/../unity -o $@ $(UNIT_TEST_DIR)/test_load_balance.c load_balance.c proxy.c proxy_tls.c http.c log.c platform.c $(UNITY_SRC) $(LDFLAGS)
|
||||||
|
|
||||||
# HTTP/3 测试
|
# HTTP/3 测试
|
||||||
|
$(UNIT_TEST_DIR)/test_http3: $(UNIT_TEST_DIR)/test_http3.c http3.c http.c log.c platform.c $(UNITY_SRC)
|
||||||
|
$(CC) $(CFLAGS) -I. -I$(UNIT_TEST_DIR)/../unity -o $@ $(UNIT_TEST_DIR)/test_http3.c http3.c http.c log.c platform.c $(UNITY_SRC) $(LDFLAGS)
|
||||||
|
|
||||||
|
# SSE 测试
|
||||||
$(UNIT_TEST_DIR)/test_sse: $(UNIT_TEST_DIR)/test_sse.c sse.c log.c $(UNITY_SRC)
|
$(UNIT_TEST_DIR)/test_sse: $(UNIT_TEST_DIR)/test_sse.c sse.c log.c $(UNITY_SRC)
|
||||||
$(CC) $(CFLAGS) -I. -I$(UNIT_TEST_DIR)/../unity -o $@ $(UNIT_TEST_DIR)/test_sse.c sse.c log.c $(UNITY_SRC) $(LDFLAGS)
|
$(CC) $(CFLAGS) -I. -I$(UNIT_TEST_DIR)/../unity -o $@ $(UNIT_TEST_DIR)/test_sse.c sse.c log.c $(UNITY_SRC) $(LDFLAGS)
|
||||||
|
|
||||||
|
|||||||
@ -1358,7 +1358,7 @@ echo ""
|
|||||||
echo "=== SSE 测试 ==="
|
echo "=== SSE 测试 ==="
|
||||||
|
|
||||||
# 测试 SSE 端点基本响应
|
# 测试 SSE 端点基本响应
|
||||||
sse_status=$(curl -s -o /dev/null -w "%{http_code}" --max-time 2 "$BASE/_sse")
|
sse_status=$(curl -s -o /dev/null -w "%{http_code}" --max-time 2 "$BASE/_sse" || true)
|
||||||
if [[ "$sse_status" == "200" ]]; then
|
if [[ "$sse_status" == "200" ]]; then
|
||||||
echo " ✓ /_sse 状态码 — HTTP 200"
|
echo " ✓ /_sse 状态码 — HTTP 200"
|
||||||
pass
|
pass
|
||||||
@ -1368,7 +1368,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 测试 SSE 内容类型
|
# 测试 SSE 内容类型
|
||||||
sse_ct=$(curl -s -o /dev/null -w "%{content_type}" --max-time 2 "$BASE/_sse")
|
sse_ct=$(curl -s -o /dev/null -w "%{content_type}" --max-time 2 "$BASE/_sse" || true)
|
||||||
if echo "$sse_ct" | grep -q "text/event-stream"; then
|
if echo "$sse_ct" | grep -q "text/event-stream"; then
|
||||||
echo " ✓ /_sse Content-Type — text/event-stream"
|
echo " ✓ /_sse Content-Type — text/event-stream"
|
||||||
pass
|
pass
|
||||||
@ -1378,7 +1378,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 测试 SSE 事件流格式(读取前几行验证)
|
# 测试 SSE 事件流格式(读取前几行验证)
|
||||||
sse_body=$(curl -s --max-time 3 "$BASE/_sse" | head -20)
|
sse_body=$(curl -s --max-time 3 "$BASE/_sse" | head -20 || true)
|
||||||
if echo "$sse_body" | grep -q "event: connected"; then
|
if echo "$sse_body" | grep -q "event: connected"; then
|
||||||
echo " ✓ /_sse 事件流 — 包含 connected 事件"
|
echo " ✓ /_sse 事件流 — 包含 connected 事件"
|
||||||
pass
|
pass
|
||||||
@ -1404,7 +1404,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 测试 SSE 不接受 POST(应该返回 405 或不被 SSE 处理)
|
# 测试 SSE 不接受 POST(应该返回 405 或不被 SSE 处理)
|
||||||
sse_post_status=$(curl -s -o /dev/null -w "%{http_code}" --max-time 1 -X POST "$BASE/_sse")
|
sse_post_status=$(curl -s -o /dev/null -w "%{http_code}" --max-time 1 -X POST "$BASE/_sse" || true)
|
||||||
if [[ "$sse_post_status" == "405" ]]; then
|
if [[ "$sse_post_status" == "405" ]]; then
|
||||||
echo " ✓ /_sse POST 请求 — HTTP 405 Method Not Allowed"
|
echo " ✓ /_sse POST 请求 — HTTP 405 Method Not Allowed"
|
||||||
pass
|
pass
|
||||||
|
|||||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user