#!/usr/bin/env python3 # -*- coding: utf-8 -*- """运行参数段(run_par,「数据可信」卡 10)主机侧单元测试运行器(L0.5,纯标准库)。 做什么:用本机 MSVC 离线编译 test/host/run_par/run_par_test.c(#include 纳入 run_par.c + cfg_file.c + adc_cal.c 真实链 + 内存虚拟盘桩),钉死 [run_par] 注册/工厂默认/落盘往返、104 地址映射两段式、k/b 覆盖直通 adc_cal 合法带、 生效值视图回显与 init 幂等。 用法(仓库根目录): & '.venv\\Scripts\\python.exe' test/host/run_par/run_unit_test.py 退出码:0=PASS / 1=测试失败 / 2=环境错误。 设计依据:docs/任务规划/数据可信.md(卡 10)+ docs/子系统设计/IEC104上行设计说明.md §3.4。 创建日期:2026-10-25(道D 卡 10) """ import os import sys HERE = os.path.dirname(os.path.abspath(__file__)) ROOT = os.path.dirname(os.path.dirname(os.path.dirname(HERE))) sys.path.insert(0, os.path.join(ROOT, "test", "host", "common")) from unit_test_harness import TestBuild, run_host_unit_test # noqa: E402 # 顺序敏感:stub 先于生产目录(dbg_log.h → 计数宏桩);App/cfg + App/log 真头 # 供 cfg_file.h / cfg_file_store.h / sys_log.h;adc_input_desc / syslog_post / # cfg_store_* 内存虚拟盘由测试单元给强符号桩(同 adc_cal 套件先例)。 BUILD = TestBuild( name="RunPar Layer Tests", src=os.path.join(HERE, "run_par_test.c"), include_dirs=[ os.path.join(HERE, "stub"), os.path.join(ROOT, "App", "algo"), os.path.join(ROOT, "App", "cfg"), os.path.join(ROOT, "App", "log"), HERE, ], summary_marker="=== RunPar Tests:", ) if __name__ == "__main__": sys.exit(run_host_unit_test(BUILD))