Files
DataRouter/TEST_CASES.md
T

4.0 KiB
Raw Permalink Blame History

DataRouter 单元测试用例文档

测试环境

项目 内容
语言标准 C11
编译器 GCC 11.4.0
测试框架 自定义轻量框架(宏 + goto cleanup)
构建系统 CMake ≥ 3.10
发送能力 sensor / status
接收能力 rtcm / command

运行方式

cmake -S . -B build
cmake --build build
ctest --test-dir build
./build/test_datarouter

测试用例列表

1. 未初始化(1 个)

# 测试名 描述 步骤 预期
1 error_uninit 未 init 时发送 send_sensor("d", 1) 返回 -1

2. 端口管理(4 个)

# 测试名 描述 步骤 预期
2 port_create_basic 基本创建 port_create() 返回 ≥ 0
3 port_create_max 满容量 64 循环创建到满再尝试 64 个成功,第 65 个 INVALID
4 port_delete_invalid 删除无效 ID delete(-1) + delete(999) 不崩溃
5 port_default_state 默认状态 新建端口,查 send_type / handler count send_type=-1, count=0

3. send_type 与 handler(3 个)

# 测试名 描述 步骤 预期
6 send_type_set_get 设置并清除 send_type set_send_type(sensor) → get → set(-1) → get sensor → -1
7 handler_add_remove 添加后移除 handler add(h) count=1 → remove(h) count=0 count 正确
8 handler_clear 清除全部 handler add → clear count == 0

4. 发送 — 自动广播(11 个)

# 测试名 描述 步骤 预期
9 send_no_match_port 无匹配端口 不创建任何端口,直接 send_sensor 返回 -2
10 send_one_port_one_handler 单端口单 handler 创建端口中 send_type + add(h) → send 返回 0;handler 1 次
11 send_one_port_multi_handler 单端口双 handler add(h) + add(h2) → send handler 2 次
12 send_multi_ports_same_type 两端口同类型 p1(sensor,h) + p2(sensor,h) → send handler 2 次,各端口一次
13 send_multi_port_multi_handler 多端口多 handler p1(h,h2) + p2(h3) → send handler 3 次
14 send_type_filter 类型过滤 p1(sensor,h) + p2(status,h) → send_sensor 只触发 p1
15 send_after_remove_handler 移除 handler 后 add(h) → send count=1 → remove(h) → send 第二次返回 -2
16 send_after_delete_port 删除端口后 创建→设好→删除→send 返回 -2
17 send_zero_length 零长度数据 send("x", 0) 返回 0;handler 被调
18 send_null_data NULL 数据 send(NULL, 0) 返回 0;handler 被调
19 send_multi_cap 多能力独立 p1(sensor) + p2(status) → 分别 send_sensor + send_status 各触发匹配的端口

5. 接收回调(1 个)

# 测试名 描述 步骤 预期
20 recv_callback 用户实现接收回调 on_recv_rtcm(0, "d", 1) 回调被触发

6. 能力元数据(2 个)

# 测试名 描述 步骤 预期
21 send_cap_meta 发送能力元数据 count / name / desc / 边界 SEND 两组正确
22 recv_cap_meta 接收能力元数据 count / name / desc / 边界 RECV 两组正确

覆盖矩阵

功能模块 用例数 主要验证点
未初始化 1 send → -1
端口管理 4 创建/满容量/删除异常/默认状态
send_type & handler 3 设置/清除/添加/移除/清空
发送自动广播 11 无匹配/单播/多 handler 单端口/多端口同类型/多端口多 handler/类型过滤/移除后/删除后/零长/NULL/多能力独立
接收回调 1 用户实现覆盖弱符号
能力元数据 2 SEND 与 RECV 两组独立查询

总计:22 个测试用例