12.9 步骤 6:vm_test 固化(手工映像 + 编译器产物 + 确定性)。

- 手工映像:标量/跳转/数据区、CALL/RET 帧复制(r1/r2 实参 → r0 结果)、自调用 StackOverflow、越界槽 BadSlot、坏常量 BadConst
- 编译器产物:用例 01~09/13/15/17/18/20 跑周期断言(TON 第 3 周期 q=1、line1 真值表 4 组)
- 用例 06 CycleLimit;确定性:同一 I 序列两遍数据区逐字节一致
- step 单步:停在指令边界、cycle_count/regs 逐步核对
- ctest 10/10(vm_cycles 84 断言)
This commit is contained in:
2026-08-21 20:22:36 +08:00
parent ada9e5f99e
commit 8c0fc4fe98
2 changed files with 451 additions and 0 deletions
+11
View File
@@ -78,3 +78,14 @@ target_compile_definitions(codegen_test PRIVATE
add_test(NAME codegen_slice1
COMMAND codegen_test)
# VM 测试:手工映像 + 编译器产物 + 定时器 + 确定性(REPO_ROOT 注入源目录绝对路径)
add_executable(vm_test
./src/vm_test.cpp)
target_link_libraries(vm_test PRIVATE compiler vm)
target_compile_definitions(vm_test PRIVATE
REPO_ROOT="${CMAKE_SOURCE_DIR}")
add_test(NAME vm_cycles
COMMAND vm_test)