#!/usr/bin/env python3 # -*- coding: utf-8 -*- """量纲回归用例(道A)主机侧单元测试运行器(L0.5,纯标准库)。 做什么: MSVC 编译 test/host/prot_dim/prot_dim_test.c(#include 纳入真实链: adc_cal + prot_set + sample_ring + phasor + freq + prot_elm),在 PC 上 用"码值→二次值显式换算"的全链路合成波驱动七类保护元件,钉死 「不该动作时不动作」。工具链细节委托 unit_test_harness.py。 为什么要这个套件(数据可信 §2.2 / 量纲回归用例): 台架此前"通过"是因为没有一条判据检查不该动作时不动作——"码值当工程量" 的错配曾让 OC 恒假动作。本套件把换算写进用例:折算点被旁路或量纲再错位, 断言立刻翻转;纯合成数据,零硬件零台架。 用法(仓库根目录): python test/host/prot_dim/run_unit_test.py 退出码:0=PASS / 1=测试失败 / 2=环境错误。 设计依据:docs/任务规划/数据可信.md 量纲回归用例(M4 退出判据⑥); 创建日期:2026-10-25 """ 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/algo 供被测链与 adc_input.h; # App/cfg 供 cfg_file.h(adc_cal.c 的接口头,注册函数打桩)。 BUILD = TestBuild( name="Prot Dim Regression Tests", src=os.path.join(HERE, "prot_dim_test.c"), include_dirs=[ os.path.join(HERE, "stub"), os.path.join(ROOT, "App", "algo"), os.path.join(ROOT, "App", "cfg"), HERE, ], summary_marker="=== Prot Dim Regression Tests:", ) if __name__ == "__main__": sys.exit(run_host_unit_test(BUILD))