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