cli/gda_expr_cli API
cli/gda_expr_cli 是 General Decimal Arithmetic .decTest 测试语料的命令行运行器。它读取文件,用 frontend/gda_expr 解析,针对 decimal_gda 执行,并打印文本或 JSON 摘要。通常通过 cli 分派器以 floating-conformance --backend gda … 的方式调用它。参见教程和设计页面。
run
run(arguments) 执行一次调用并返回退出码。
pub fn run(Array[String]) -> Int
arguments[0] 是程序名,会被忽略。选项:
| 选项 | 含义 |
|---|---|
--json | 打印一个 JSON 对象而非文本 |
--shard-count N、--shard-index I(也接受 = 形式) | 运行 N 个分片中的第 I 个(默认分别为 1、0) |
--strict-supported | 当所选的行不受支持或属于遗留行时也判为失败 |
--cases SPEC, --cases=SPEC | 行过滤器:逗号分隔的 id 或 first..last 范围(参见 RunOptions::new) |
--help, -h | 打印用法行并返回 2 |
PATH … | .decTest 文件或目录(目录中直接以 .decTest 结尾的条目);默认为 testdata/decimal/smoke.decTest |
其他任何以 - 开头的参数都会产生错误 unknown option: …。文件经过排序后依次解析(文件的第一条解析诊断以 source:line:1: message 的形式打印,并结束本次运行),然后一并执行,因此行序号和分片跨越所有文件。
文本输出列出各项计数(cases、selected cases、executable cases、passed cases、failed cases、skipped cases)、分片信息,并为每个失败的行输出一行 failed ID: MESSAGE。JSON 输出包含键 totalCases、supportedCases(可执行的行)、diagnosticCases、legacyConditionCases、unsupportedCases,以及一个 execution 对象,其中含有 executableCases、passedCases、failedCases、skippedCases、failedIds、shardCount、shardIndex。
返回值:用法、文件或解析错误时为 2;有行失败,或指定 --strict-supported 时选中了任何遗留或不支持的行,为 1;否则为 0。
///|
test "gda runner usage errors" {
inspect(@gda_expr_cli.run(["gda", "--frobnicate"]), content="2")
inspect(@gda_expr_cli.run(["gda", "--shard-count", "0"]), content="2")
}
完整公共接口
// Generated using `moon info`, DON'T EDIT IT
package "Luna-Flow/floating/cli/gda_expr_cli"
// Values
pub fn run(Array[String]) -> Int
// Errors
// Types and methods
// Type aliases
// Traits