2.1 KiB
2.1 KiB
全量验证表(2026-08-26)
20 用例全量扫描:STCompiler 编译 → BytecodeExecutor 执行冒烟(4 周期)→ line1 真值表回放。方法:编译失败/成功按退出码;负例按期望错误类别匹配;执行按退出码与故障打印。内部值断言(a=42、n=10、x=7 等)由 vm_test(94 checks)与 vm_cycles/cases_all 覆盖。
结果
| case | 类别 | 阶段 | 结果 | 备注 |
|---|---|---|---|---|
| 01_empty_main | 正例 | 编译+执行 | ok | 4 周期无故障 |
| 02_bool_assign | 正例 | 编译+执行 | ok | |
| 03_short_circuit | 正例 | 编译+执行 | ok | |
| 04_if_elsif_else | 正例 | 编译+执行 | ok | |
| 05_while_normal | 正例 | 编译+执行 | ok | |
| 06_while_cycle_limit | 正例 | 编译+执行 | CycleLimit | 期望故障,正确触发(FAULT(1)) |
| 07_int_arith | 正例 | 编译+执行 | ok | |
| 08_time_literal | 正例 | 编译+执行 | ok | |
| 09_gvl_external | 正例 | 编译+执行 | ok | |
| 10_gvl_wrong_file | 负例 | 编译 | REJECTED ok | link error: VAR_GLOBAL only allowed in gvl file |
| 11_duplicate_global | 负例 | 编译 | REJECTED ok | link error: duplicate global |
| 12_io_unknown_var | 负例 | 编译 | REJECTED ok | link error: io.var not in GVL |
| 13_function_call | 正例 | 编译+执行 | ok | |
| 14_function_write_global | 负例 | 编译 | REJECTED ok | type error: function cannot write global |
| 15_fb_instance | 正例 | 编译+执行 | ok | |
| 16_fb_undeclared | 负例 | 编译 | REJECTED ok | link error: undeclared FB instance |
| 17_ton | 正例 | 编译+执行 | ok | |
| 18_tof_ctu | 正例 | 编译+执行 | ok | |
| 19_recursive_call | 负例 | 编译 | REJECTED ok | link error: recursive call |
| 20_line1 | 正例 | 编译+执行 | ok | 真值表 4 行全对 |
line1 真值表(回放:io.input 顺序 EmergencyStop, I0_0;I0_1=0 未绑定)
| EmergencyStop | I0_0 | Q0_0 | 结果 |
|---|---|---|---|
| 0 | 1 | 1 | ok |
| 0 | 0 | 0 | ok |
| 1 | 0 | 0 | ok(急停生效) |
| 0 | 1 | 1 | ok |
结论:20/20 用例符合期望,ctest 14/14,全部绿。