--suites 参数直接传入 BenchConfig,runner.rs 只做精确字符串匹配。无效套件名不会报错或警告,可能导致用户拼写错误后没有任何 benchmark 被执行。
--suites
BenchConfig
runner.rs
用户只会看到 Completed 0 benchmarks,难以发现是 suite 名称错误。
Completed 0 benchmarks
crates/bench/src/main.rs:20
crates/bench/src/runner.rs:22
在构造 BenchConfig 前校验 suite 名称集合;对未知名称报错退出或至少输出 warning。
按照 Oracle 推荐的类型驱动方案实施:引入 Suite 枚举替代字符串匹配。
main.rs
parse_all_valid_suites / misspelled_suite_returns_error / error_message_lists_all_valid_values / mixed_valid_invalid_stops_at_first_error
Commit: fb57584
fb57584
No dependencies set.
The note is not visible to the blocked user.
问题
--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