🟡 [M17] bench --suites 拼写错误会静默运行 0 个套件 #37
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
--suites参数直接传入BenchConfig,runner.rs只做精确字符串匹配。无效套件名不会报错或警告,可能导致用户拼写错误后没有任何 benchmark 被执行。影响
用户只会看到
Completed 0 benchmarks,难以发现是 suite 名称错误。位置
crates/bench/src/main.rs:20crates/bench/src/runner.rs:22建议
在构造
BenchConfig前校验 suite 名称集合;对未知名称报错退出或至少输出 warning。修复方案
按照 Oracle 推荐的类型驱动方案实施:引入 Suite 枚举替代字符串匹配。
改动
runner.rs
main.rs
测试(4 项全部通过)
parse_all_valid_suites / misspelled_suite_returns_error / error_message_lists_all_valid_values / mixed_valid_invalid_stops_at_first_error
Commit:
fb57584