cli/testfloat_expr_cli API
cli/testfloat_expr_cli 是 Berkeley TestFloat 向量文件的命令行运行器。它根据选项构建一个 TestFloatSpec,用 frontend/testfloat_expr 解析一个向量文件,针对 bin_float 执行,并打印摘要。通常以 floating-conformance --backend testfloat … 的方式调用它。参见教程和设计页面。
run
run(arguments) 执行一次调用并返回退出码。
pub fn run(Array[String]) -> Int
arguments[0] 是程序名,会被忽略。选项:
| 选项 | 含义 |
|---|---|
--function NAME | TestFloat 函数,例如 f64_mulAdd(必需) |
--rounding NAME | 舍入模式,默认为 rnear_even |
--tininess NAME | after(默认)或 before |
--exact | roundToInt 及整数转换的 -exact 变体 |
--json | 打印一个 JSON 对象而非文本 |
--shard-count N、--shard-index I(也接受 = 形式) | 运行 N 个分片中的第 I 个 |
PATH | 恰好一个向量文件(必需) |
这些名称由 TestFloatSpec::parse 解释。诸如 --function is required、a TestFloat vector path is required、only one TestFloat vector file is accepted per invocation、unknown option: … 或不支持的名称之类的错误会被打印并返回 2;文件的第一条解析诊断(source:line:1: message)也是如此。
文本输出打印函数、舍入、微小性(tininess)、计数 cases、selected cases、passed cases、failed cases,并为每个失败输出一行 failed ID: MESSAGE。JSON 输出包含键 function、rounding、tininess、exact、totalCases、selectedCases、passedCases、failedCases 和 failedIds。
返回值:用法、规格、文件或解析错误时为 2;有向量失败时为 1;否则为 0。
///|
test "testfloat runner usage errors" {
inspect(@testfloat_expr_cli.run(["testfloat", "vectors.tv"]), content="2")
inspect(
@testfloat_expr_cli.run(["testfloat", "--function", "f64_mul", "--rounding", "rodd", "v.tv"]),
content="2",
)
}
完整公共接口
// Generated using `moon info`, DON'T EDIT IT
package "Luna-Flow/floating/cli/testfloat_expr_cli"
// Values
pub fn run(Array[String]) -> Int
// Errors
// Types and methods
// Type aliases
// Traits