- tests/cases/ 01~20:13 正例 / 6 负例 / 1 运行时故障 - 负例冻结报错类别:非 GVL 写全局、同名全局、io.var 未声明、FUNCTION 写全局、未声明实例、循环调用 - tests/README 补充用例清单与点亮节奏
25 lines
1.3 KiB
Markdown
25 lines
1.3 KiB
Markdown
# tests
|
||
|
||
自动化用例,由顶层 `enable_testing()` 接入 CTest。
|
||
|
||
可以 `add_test` 调 `STCompiler` / `BytecodeExecutor`(编译→执行管线),或直接链接 `compiler` + `vm` 做单元断言。样例工程数据按「一份 toml + 若干 `.st`」分子目录存放,不要做成 library。
|
||
|
||
## 用例目录(`cases/`)
|
||
|
||
每个用例一个子目录:`project.toml` + `.st` + `EXPECTED.md`(期望:通过 / 报哪类错)。清单与编号见 [`Doc/初步计划.md`](../Doc/初步计划.md) 12.2 节,共 20 个:
|
||
|
||
- 正例:01 空 MAIN、02 BOOL、03 短路、04 IF、05 WHILE、07 算术、08 TIME、09 GVL+EXTERNAL、13 FUNCTION、15 FB、17 TON、18 TOF/CTU、20 line1
|
||
- 负例(编译错误/链接失败):10 非 GVL 写全局、11 同名全局、12 io.var 未声明、14 FUNCTION 写全局、16 未声明实例、19 循环调用
|
||
- 运行时故障:06 cycle_limit 打满
|
||
|
||
12.2 完成标准:目录和期望表齐,此时大部分还编不过,属正常。实现阶段逐个点亮。
|
||
|
||
## 第一版要冻的
|
||
|
||
- 关键字表与约 20 个样例程序
|
||
- 约 20 条指令编码
|
||
- 符号表字段:名字、种类、类型、地址、源文件
|
||
- 链接错误:重复 `VAR_GLOBAL`、非 GVL 文件写全局、`io.var` 未声明
|
||
|
||
给人看的最小闭环放 `examples/line1/`,本目录放断言和负例。
|