73941da6b1
为 task_watchdog.c 的判定逻辑(位图取走清零 / 必需掩码 0x37 判定 / miss_streak 连续 8 次停喂 / 100ms 抽样节流 / tick 回绕安全)补一层 主机侧纯逻辑单元测试,弥补此前只能靠真机或模拟器才能发现回归的空白。 架构(沿用项目既有"共享核心 + 平台后端"做法,参照 cfg_file_store): - task_watchdog.h 末段新增"平台后端(内部)"声明 3 个钩子 (wd_platform_feed / _start / _tick_ms),MCU 端以 __weak 提供默认实现, 行为与重构前逐字一致(@build 0 错误 0 警告,Flash +20B)。 - 主机侧单测以同名强符号覆盖三钩子,即可离线注入/观测,无需碰 MCU 代码。 - 测试文件 #include 生产源文件本身,保证测的是真代码而非副本。 - 测试专用复位 task_wd_test_reset() 仅 TASK_WATCHDOG_UNIT_TEST 下编入, MCU 构建零代码零符号。 测试(test/host/watchdog/,MSVC 离线编译,纯标准库驱动): - 39 项断言全过(退出码 0);注入故障可复现退出码 1。 - run_unit_test.py 直接拼 INCLUDE/LIB 调 cl.exe,绕开本机被禁的 reg.exe。 - stub/ 三桩头覆盖 main.h / iwdg.h / dbg_log.h。 门禁:pre-commit 新增 watchdog-unit-test 本地钩子(L0.5 层),仅被测文件 或其测试变动时触发;测试开发标准流程.md 新增 L0.5 层说明。 顺带改善:task_watchdog.c 的节流基线 s_last_tick 由函数内 static 提为文件 static(可测性 + 模块状态归一)。
133 lines
3.0 KiB
Plaintext
133 lines
3.0 KiB
Plaintext
# Keil MDK - Build artifacts
|
||
*.o
|
||
*.d
|
||
*.crf
|
||
*.axf
|
||
*.hex
|
||
*.map
|
||
*.lnp
|
||
*.dep
|
||
# Keil UV4 预处理列表文件("Generate preprocessed source file" 选项产生的构建中间物,勿入库)
|
||
*__i
|
||
*._ia
|
||
*.build_log.htm
|
||
*.htm
|
||
*.log
|
||
*.lst
|
||
*.dep
|
||
.workbuddy-ai/
|
||
|
||
# Keil MDK - Build/download logs (regenerated by build.bat / download.bat)
|
||
MDK-ARM/build_log.txt
|
||
MDK-ARM/download_log.txt
|
||
MDK-ARM/err.txt
|
||
MDK-ARM/out.txt
|
||
MDK-ARM/ret.txt
|
||
|
||
# Keil MDK - IDE settings (user-specific)
|
||
*.uvoptx
|
||
*.uvguix.*
|
||
|
||
# Keil MDK - Debug config
|
||
*.dbgconf
|
||
|
||
# Keil MDK - RTE auto-generated
|
||
MDK-ARM/RTE/
|
||
|
||
# STM32CubeMX (keep .ioc, it's the project source)
|
||
# *.ioc
|
||
|
||
# CubeMX 重生成时自动产生的旧文件备份(Src/Backup/、Inc/Backup/)——
|
||
# 纯本地临时物,内容 = 重生成前的快照;入库只会造成无意义的提交抖动
|
||
Src/Backup/
|
||
Inc/Backup/
|
||
|
||
# Visual Studio / IDE
|
||
.vs/
|
||
.vscode/
|
||
*.suo
|
||
*.njsproj
|
||
*.sln
|
||
*.suo
|
||
*.user
|
||
*.opensdf
|
||
*.cache
|
||
|
||
# Windows
|
||
Thumbs.db
|
||
ehthumbs.db
|
||
*.tmp
|
||
*.temp
|
||
|
||
# Linux / Mac
|
||
.DS_Store
|
||
|
||
# LVGL - Unused directories (only src/ is compiled)
|
||
Lib/lvgl/demos/
|
||
Lib/lvgl/tests/
|
||
Lib/lvgl/docs/
|
||
Lib/lvgl/libs/
|
||
Lib/lvgl/scripts/
|
||
Lib/lvgl/env_support/
|
||
Lib/lvgl/examples/
|
||
Lib/lvgl/.github/
|
||
Lib/lvgl/.devcontainer/
|
||
Lib/lvgl/zephyr/
|
||
Lib/lvgl/xmls/
|
||
Lib/lvgl/configs/
|
||
|
||
# LVGL - Build system files not needed for Keil
|
||
# NOTE: Lib/lvgl/CMakeLists.txt is REQUIRED by the PC simulator (simulator/),
|
||
# so it is tracked despite being a build-system file. Do not re-ignore it.
|
||
Lib/lvgl/CMakePresets.json
|
||
Lib/lvgl/component.mk
|
||
Lib/lvgl/idf_component.yml
|
||
Lib/lvgl/Kconfig
|
||
Lib/lvgl/library.json
|
||
Lib/lvgl/library.properties
|
||
Lib/lvgl/lvgl.mk
|
||
Lib/lvgl/lvgl.pc.in
|
||
Lib/lvgl/SConscript
|
||
Lib/lvgl/sconscript
|
||
|
||
# LVGL PC Simulator - build artifacts
|
||
simulator/build/
|
||
sim_dbg.log
|
||
|
||
# 模拟器宿主侧产物(lvgl_sim.exe / 测试脚本在 CWD 生成,不入库):
|
||
# sim_config.ini = net_cfg_load 首启工厂默认落盘;sim_*.log = syslog 后端宿主文件
|
||
sim_config.ini
|
||
sim_run.log
|
||
sim_selftest.log
|
||
|
||
# LVGL PC Simulator - screenshot outputs (generated, see simulator/i1_to_png.py)
|
||
simulator/shot*.png
|
||
simulator/shot*.bin
|
||
simulator/*.ppm
|
||
simulator/__pycache__/
|
||
|
||
# LVGL PC Simulator - SDL2 SDK (downloaded, see docs/UI 设计/LVGL模拟器部署与使用说明.md §3.1 与 docs/项目部署环境要求.md 第 3 步)
|
||
simulator/SDL2/
|
||
|
||
# Binary / large files
|
||
*.bin
|
||
|
||
# 主机侧单元测试产物(MSVC 中间物;test/host/**/run_unit_test.py 正常写 %TEMP%,
|
||
# 但手工直接调 cl.exe 调试时可能落在 CWD。统一兜底忽略)
|
||
*.obj
|
||
*.exe
|
||
*.pdb
|
||
*.ilk
|
||
# 内容页黄金参考(ref/*.bin)与目检 PNG 均为本地生成物,不入库:
|
||
# 首次/换机后先跑 check_content_pages.py --update 生成 ref/*.bin,再跑 regen_ref_png.py 出 PNG
|
||
simulator/tests/ref/
|
||
# 架构图 PNG 预览(源为 docs/images/*.svg,PNG 本地渲染生成,不入库)
|
||
docs/images/*.png
|
||
*.pyc
|
||
|
||
# Python venv (unified env, see AGENTS.md "Python 环境"; rebuild via requirements.txt)
|
||
.venv/
|
||
|
||
# Serial assistant (tools/serial_tool) runtime state (daemon log/meta, local runtime artifacts)
|
||
tools/serial_tool/state/
|