gda_expr_cli 教程
本教程介绍如何用 GDA 运行器运行 .decTest 文件:选择文件和行、对运行分片、获取 JSON 输出,以及让不支持的行导致运行失败。该运行器通过 floating-conformance --backend gda 调用;下文以 gda 简称这条命令。
快速入门
构建可执行文件并运行仓库中提交的冒烟测试文件:
just conformance build decimal_gda
_build/conformance/gda/native/release/build/gda-conformance.exe --backend gda
GDA expression execution summary
cases: …
selected cases: …
executable cases: …
passed cases: …
failed cases: 0
skipped cases: …
shard: 0/1
当没有可执行行失败时,退出状态为 0。
日常任务
运行文件和目录
gda path/to/add.decTest path/to/multiply.decTest
gda .tmp/decimal/official # every *.decTest directly in the directory
文件按路径排序,并作为一次运行执行。
选择行
gda --cases add001 add.decTest
gda --cases add001..add099,addx1001 add.decTest
范围匹配长度相同、且排序位于其上下界之间的 id。
对运行分片
gda --json --shard-count 4 --shard-index 0 .tmp/decimal/official
gda --json --shard-count 4 --shard-index 1 .tmp/decimal/official
分片 i 运行位置(经 --cases 过滤后、跨所有文件计数)对分片数取模等于 i 的行。把所有分片的 JSON 计数器相加,即得到未分片运行的计数器。
让不支持的行导致失败
gda --strict-supported add.decTest
使用 --strict-supported 时,只要有任何被选中的行不受支持或属于遗留(legacy)行,即使所有已执行的行都通过,退出状态也为 1。
深入了解
just conformance run decimal_gda会获取固定版本的官方语料,按testdata/decimal/interpreter_stages.json将其划分为各阶段,并用此运行器并行运行各分片。- gda_expr 教程 解释了行的语义和通过规则。
常见陷阱
--help返回2。 运行器将其用法作为错误打印;经由分发器时,--help显示的则是分发器的用法。- 只报告第一个解析错误。 格式错误的行会以一条
file:line:1: message终止运行;修正后重新运行才能看到下一个错误。 - 目录不递归。 不会搜索子目录。
后续步骤
- gda_expr_cli API:选项、输出键和退出码。
- gda_expr_cli 设计。