已关闭
[issue] baseline create 不支持 --file 独立文件输入 #21
cezarbbb创建于 9月9日关闭于 9月16日
WangZijun
9月15日 评论:
9月15日 评论:
https://gitcode.com/xuanwu/bot-metric/merge_requests/7
结论:
- 问题可复现:已通过修复前最小复现/回归测试确认。
- 问题可修复:当前分支集成测试已验证修复行为。
具体修复:
- 支持 baseline create/compare 的独立 --file 输入并校验互斥参数。
- 将小于 1e-15 的 baseline delta 归零,避免未变化输入产生假差异。
- 增加 standalone baseline 集成测试并同步命令文档。


问题概述
baseline create仅接受目录/Cargo 清单输入,传--file报 BM402(参数无效),退出码 2;baseline 机制与 analyze 的输入能力不对齐(analyze 支持--file,baseline create 不支持)。首次出现版本:v1.0.0 即存在,v1.1.0 延续。受影响对象:--file独立文件输入。实际影响:独立文件场景无法直接建基线,需目录/Cargo 包装。本问题涉及工作流能力口径,不涉及指标数值。影响范围
--file能力不对齐);BM402复现步骤
最小源码样例:夹具
fixtures\standalone(app.rs,5 个 .rs 文件、26 行)。自包含最小样例如下(独立 .rs 文件,可直接创建后复现;下述命令中的<standalone>即指向该样例目录):app.rs:// app.rs — standalone fixture with a moderate function and a cfg block. pub fn pipeline(input: &[i32]) -> Vec<i32> { let mut out = Vec::new(); for v in input { if *v % 2 == 0 { out.push(*v * 2); } else if *v < 0 { out.push(-*v); } else { out.push(*v + 1); } } out } #[cfg(feature = "advanced")] pub fn advanced_mode() -> &'static str { "advanced enabled" } #[cfg(not(feature = "extra"))] pub fn fallback() -> &'static str { "basic mode" } #[cfg(feature = "extra")] pub fn extra_path() -> &'static str { "extra feature path" }BM110 baseline create --output b.json --file <standalone>\app.rsBM110 analyze --file <standalone>\app.rs --format json(analyze 支持同输入)预期结果
baseline create 支持
--file输入(与 analyze 能力对齐),或文档明确 baseline 仅支持目录/Cargo 输入。实际结果
BM402 参数无效,退出码 2;analyze 对同一输入正常。两平台行为一致。证据:
x86_linux\records\batch-07\;arm_linux\records-arm64\batch-07\。证据原文(x86_linux\records\batch-07\BATCH-07-SUMMARY.md 观察项节选):
证据原文(arm_linux\records-arm64\batch-07\BATCH-07-SUMMARY.md 节选,两处):
证据原文(x86_linux\records\batch-07\out\t75-base-create.json,PATH 形式创建成功对照,4 行全文):
(注:BM402 报错无独立产物文件,原文记录于两平台 BATCH-07-SUMMARY.md;t75-base-create.json 为 PATH 形式创建成功的对照记录)
分析环境与范围
--file app.rs);baseline create指标、发现与报告证据
性能与资源证据
附件与提交确认