台架执行《实机测试实施指南》步骤 3~7 并闭环
步骤 3/4(IWDG V2/V4/V5 + 堆低水位 S11):
- V2 任务饿死 stall 后 ≤2.5s IWDG 复位;V4 关中断死循环 ~4.9s 稳定复位;
V5 30min 120×FTP 全 PASS、零 IWDG 复位。堆告警全程未触发(min_ever=4728B)。
- task_watchdog.c:stall 证据写盘会经 nand_ftl_wd_feed 喂狗 → 增 s_stall_evidenced
每次 stall 仅取一次证据,避免"取证据"本身阻止复位。
- default_task.c:堆低水位告警(HEAP_LOW_WATER_B=3072)。
步骤 5(GD5F 错误通道 S9):gd5f2gq5ue.c/.h + nand_ftl.c 错误码统一为 int32_t 并
全量检查返回值;套件回归 16/16 PASSED。
- test/run_all_suites.py:--forbidden 改为按套件覆盖(GD5F 用 "HardFault;assert")——
TC-GD5F-704 故意触发 [ERR] 回落轮询,统一默认值会误判 FAIL。
步骤 6(网络稳定性):7.1 正常路径 ✅(V5 证据);7.2 N-2 丢弃可观测性代码已具备、
49s 静默在 V5 未复现(降级低风险观察项);7.3 N-3 待 PC peer。
步骤 7(工程卫生):
- S5:新增 test-cppcheck 钩子(仅 warning,排除模拟器桩)。
- S4:新增 scripts/check_test_traceability.py(默认仅告警)。
- 待核实项 TEST_SUITE_SELECTED 实机核实 = 死代码(无使用点);RTC 套件实际正常执行,
真缺口 = 缺套件级汇总行 → sd2506_test_task.c 补 === RTC Tests: N/M PASSED === 并
修正 Phase 级汇总累计问题;test_config.h 补齐 RTC 并注释"当前无引用"。
验证:产品 @build 0/0;pre-commit --all-files 17/17 Passed;
run_all_suites.py --suites RTC → PASS。
文档:实机测试实施指南 / SD2506_Test_Guide / 待处理内容 / 测试与架构改进建议 同步。
This commit is contained in:
@@ -78,6 +78,35 @@ repos:
|
||||
MDK-ARM/|
|
||||
test/
|
||||
)
|
||||
# 4b) test/ 代码宽松静态检查(S5,2026-10-03 加)
|
||||
# 背景:`test/` 此前完全豁免 pre-commit(靠"自律"),而 `test/board/` 下
|
||||
# 6300+ 行 C 代码**且编入固件**(曾出现 `s_rx_buf` 使用先于声明)。
|
||||
# 本钩子**只开 warning**(不引入存量 style 噪音),排除模拟器桩
|
||||
# (`test/host/*/stub/`,第三方/桩头形态不受控)。
|
||||
# 基线:2026-10-03 全量实测 **0 条 warning**(存量可控,故直接挂钩子)。
|
||||
# 依据:docs/审查记录/测试与架构改进建议.md §3.4;实机测试实施指南.md §8.1
|
||||
- id: test-cppcheck
|
||||
name: cppcheck (test/, warning only)
|
||||
entry: cppcheck
|
||||
args: ['--enable=warning', '--error-exitcode=1',
|
||||
'--inline-suppr', '--std=c99', '--quiet',
|
||||
'--suppress=missingIncludeSystem', '--suppress=missingInclude',
|
||||
'--suppress=invalidPrintfArgType_sint', '--suppress=invalidPrintfArgType_uint',
|
||||
'--suppress=unusedFunction', '--suppress=unusedStructMember',
|
||||
'--suppress=constParameterPointer', '--suppress=constParameterCallback',
|
||||
'--suppress=redundantAssignment',
|
||||
'--suppress=normalCheckLevelMaxBranches',
|
||||
'-i', 'test/host/watchdog/stub',
|
||||
'-i', 'test/host/cfg_file/stub',
|
||||
'-i', 'test/host/sys_clock/stub',
|
||||
'-I', 'Inc', '-I', 'App', '-I', 'Drivers/BSP',
|
||||
'-I', 'Drivers/STM32F4xx_HAL_Driver/Inc', '-I', 'Drivers/CMSIS/Include',
|
||||
'-I', 'Middlewares/Third_Party/FreeRTOS/Source/include',
|
||||
'test/']
|
||||
language: system
|
||||
# 触发条件:test/ 下 C/头文件变动;扫描范围恒为整个 test/(pass_filenames=false)
|
||||
files: ^test/.*\.(c|h)$
|
||||
pass_filenames: false
|
||||
- id: no-mojibake
|
||||
name: Forbid U+FFFD mojibake
|
||||
entry: python scripts/check_mojibake.py
|
||||
|
||||
Reference in New Issue
Block a user