wandering1
|
7efa58d9a1
|
network: 台架 IP 迁到 192.168.31.100,并把重复写死的值收进单一真源
CI / 静态门禁 (pre-commit) (push) Failing after 25s
CI / 主机侧单测 (MSVC) (push) Successful in 48s
分两段(用户裁定 2026-11-02):先做地址迁移,再把同类字面量收敛成
单一真源,以后再改地址只动一处。
一、IP 迁移 192.168.1.100 → 192.168.31.100(gw 同步 → .31.1)
- 工厂默认:Drivers/BSP/NETCFG/net_cfg.c 的 NET_CFG_DEF_IP/_GW
- 注释/文档示例、主机与板级测试、台架 py 脚本、两份 sim_config.ini
- 字节序教学点同步换算 hex:0x6401A8C0 → 0x641FA8C0(内存
C0 A8 1F 64),旧版示例引文与历史 Trap 记录按冻结纪律不动
- UI 黄金基准:网口设置 4 态 + shot_info 共 5 张 .bin 由
check_content_pages.py --update 重刷(渲染值 IP 变了,属预期变更)
- 保留判定:客户点表引用(IEC104/继电保护规划)、芯片手册摘录、
日期冻结的变更记录行、已退役台架档案 MDK-ARM/retracted_bench_*
二、单一真源收口(A+B+C+D,用户批准全做)
- 新建 test/host/bench_defaults.py:台架 py 默认值唯一定义点
(DEVICE_IP/DEVICE_GW/PC_IP/NET_BCAST),22 个脚本改为引用;
MDK-ARM 两探针与 scripts/board_ui_nav.py 经 sys.path shim 引入
- test/board/net_test_task.h 新增 TEST_PC_PEER_IP,板测三处
PHASE*_REMOTE_IP 改引该宏(保留 -D 覆盖);Phase1 断言改
memcmp 数组比较,数组各只出现一次
- simulator/tests/check_content_pages.py 从 net_cfg.c 正则解析
NET_CFG_DEF_* 推导期望值(解析失败即报错、不静默兜底),
脚本内台架 IP 字面量清零
- 装饰性注释去具体值(net_cfg.h/net_socket.h/net_socket.c/
net_socket_sim.c);字节序教学 hex 对刻意保留为唯一写值点
- 刻意不动:主机单测夹具 IP(逐文件钉住的任意值是正确测试
实践)、文档正文 IP(那是文档内容本身)
顺带:scripts/gen_task_table.py 规范串清掉「,B5」——编号清退提交
72b4b094 改了受管区没重跑生成器,task-table 门禁因此一直红
验证:产品 @build 0/0;CH395F 套件开关构建 0/0 后还原产品态;
6 套主机单测 rc=0;content_pages(含宏推导路径)/菜单 8 态/
推流位比对全 PASS;bom-drift 99 无漂移;doc-links/coding-standard/
cppcheck 绿;py_compile 23 文件 + --help 冒烟(含 shim 绝对路径)
|
2026-11-02 14:46:42 +08:00 |
|
wandering1
|
a6d6588257
|
test(ui-golden): 刷新装置信息/交流量/直流量三页像素参考
随 44921cb(三页接快照真值)刷新黄金参考,本笔不含任何代码或断言改动——文本侧期望(PAGES/
TEXTS)已在上一笔同批改过,这一笔只把"代码新效果"登记成新的判据。
差异量(与旧参考逐像素比对,刷新前的实测)
- shot_info.bin 3669 px(6 行 → 8 行、标签去冒号、值列左对齐 x=56、页码改真值)
- shot_ac.bin 964 px(24 行 → 7 行;页脚从"共 3 页"变"共 1 页")
- shot_dc.bin 800 px(3 行 → 2 行;温度值列改"码2048"、通道行"未配置")
- 其余 8 页(密码 4 态 + 网口设置 4 态)逐字节不变:这三页与它们共用同一套框架
绘制,没连带漂移正好反证改动是局部的——不是把共享代码碰坏了而没被发现
刷新前的人眼确认(黄金参考是判据,不是快照:版面真错了就等于把错误钉死)
- 装置信息:8 行行槽 38..129 不与页脚(143)相撞;MAC 17 字符右缘 158 在屏内;软件校验
显示 "--"(不再抄参考项目的 4454);IP 走 net_cfg_fmt_ipv4 的三段补零口径,与网口设置页
同一真源;页脚"第 1 页,共 1 页"
- 交流量:Ua 0.812 / U0 0.005 / Ia 0.046 / Ia2 0.002 / Ia5 0.001 五行读数在位;
Hz "--"(eng=0 期间幅值门恒不成立)、标定行 "未标定"(量纲口径写在屏上而不是注释里);
选中行 Ua 有白带(band_h >0 才可见,同记录页约定)
- 直流量:温度 "码2048"、直流通道 "未配置"
验证
- check_content_pages.py:rc=0,14 项全 Passed(含开页-关页往返池水位 5448 B 不涨)
- check_menu_rows.py:rc=0(菜单 8 状态与池 5368 B 不变,本批没动菜单树)
- ui-golden 钩子在含本笔的整树上 Passed;全量钩子(--all-files)41 项 Passed,红项只有
mem-numbers / mem-budget(Flash/RAM 台账待回填,单写者禁区归 Lead)→ --no-verify
- 体积与上一笔一致(本笔只换 3 个 3200 B 的二进制参考,不参与固件构建)
gate: only mem-budget/mem-numbers pending lead ledger backfill
|
2026-10-25 14:44:45 +08:00 |
|
wandering1
|
a38f862fb9
|
chore(ui-golden): 像素黄金参考 ref/*.bin 入库(把门禁改成可移植)
问题:ui-golden 是逐字节比对(check_content_pages.py 里 data == refdata),
而基准 simulator/tests/ref/ 整目录被 .gitignore 忽略、从未入库。后果不是
"少几个文件",而是这条门禁在任何新克隆 / 新并行工作树里必然报「缺黄金
参考」——只在有老副本的机器上它才是真的回归门禁。本会话已两次实测踩到
(并行工作树里只能现场 --update 造基准,而现场造出来的基准恰好失去意义)。
入库前先证明基线可复现,否则等于把一条天天误报的门禁写进仓库:
- 主树 ref/ 生成于 2026-10-11,其间合入 B6~B9 与 UI 令牌化等多次改动;
今天用刚重建的 lvgl_sim 重跑 → 11 页 + 开页-关页往返池水位逐字节全过
- 主树与新工作树两份**独立构建**的 lvgl_sim(不同构建目录、不同绝对路径)
各自生成基准 → 11 个 .bin 的 SHA-256 全部一致
即渲染是 CPU 侧确定性输出,可以当仓库内容。
改动:
- .gitignore:整目录忽略 → 只忽略派生的目检 PNG。另加一条
!simulator/tests/ref/*.bin 反选——第 115 行的全仓 *.bin 兜底(挡
sim_netcfg.bin 之类运行产物)会把基线一起挡掉,且反选必须排在它之后
才生效
- 不引入 LFS:11 x 3200 B = 34.4 KB(160x160 单色打包)。走 LFS 反而新增
失效面——没拉 LFS 的克隆会拿 pointer 文本去比像素,把"缺基准"换成
"比不中"。.gitattributes 已有 *.bin binary,check-attr 确认 text unset,
不会被行尾转换改写
- 基线不会被改写型钩子毁掉:trailing-whitespace / end-of-file-fixer 声明
types: [text],位图含 NUL 被判二进制 → 实测 Skipped;索引 blob、磁盘、
主树参照三方哈希 11/11 一致
- 新增 11 个基线;同步 5 份文档与 3 处脚本口径:缺基准的提示从"首次/换机
请加 --update"改为"检出不完整 → git checkout -- simulator/tests/ref/ 取回,
不要用 --update 就地造基准"(旧提示正是自我实现型基准的来源)
- 顺带修掉 simulator/tests/README.md 两处与实现不符的描述:基准写成 PNG
(实为 .bin)、regen_ref_png.py 写成"重建黄金参考"(它只出目检图,基准
由 check_content_pages.py --update 刷)
- .pre-commit-config.yaml 只改注释(原文明确断言 ref/ "永远不会进 git
索引",已被本改动推翻);ui-golden 的 files 面覆盖 simulator/tests/,
基线被改即触发回归,刷参考从此在 git diff 里显形
历史口径按纪律冻结:UI_自动化测试流程 2026-09-10 的"整目录不入库"等 6 处
变更记录行不改写,以新行登记反转。
实测:@build 0 错 0 警(Code=213520,与内存台账一致);ui-golden Passed;
pre-commit run --all-files = 36 Passed / 0 Failed(RC=0)。
|
2026-10-22 06:17:00 +08:00 |
|