xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_timer 单元测试

平台 目标
windows simulator
linux —
lm620 r4f4

覆盖 xt_timer(软件定时器) 软件定时器模块的核心功能,共 **4 组 18 项测试**。

测试分组

分组 测试项数 内容
1. 基本功能 8 start 返回有效 ID、NULL 回调拒绝、到期触发、未到期不触发、stop 阻止触发、数组满载拒绝、多定时器同时触发、stop 无效 ID 安全
2. UID 保护 2 stop 旧 ID 不误删新定时器、auto clear 后 stop 旧 ID 安全
3. 重入 4 回调中 stop 自己、回调中 stop 其他、回调中 start 新定时器、回调中 stop 自己并 start 到同槽位
4. 边界 4 timeout 超过 INT32_MAX 拒启动、INT32_MAX 合法、stop 宏单次求值、回调中 start timeout=0 同轮触发

预期行为

  • **基本定时器**:xt_timer_start 返回有效 ID,到期后 handler 触发回调并传递 user_data,未到期的定时器不被触发
  • **stop 语义**:xt_timer_stop 立即阻止触发,对无效 ID(含已 stop 的旧 ID)安全处理不崩溃
  • **UID 保护机制**:stop 按槽位+UID 双重匹配,槽位复用后旧 UID 的不同 stop 被忽略
  • **重入安全**:回调中可安全地 stop 自己/其他定时器、start 新定时器、或 stop 自己后复用槽位 start
  • **回调中 start timeout=0**:在同一轮 handler 中被触发(确定性行为)

编译和运行

cd tests/xt_timer
xt --target windows/simulator fullclean build
xt --target windows/simulator run

注意事项