Files
Interpreter/tests/CMakeLists.txt
T
Admin 66d9c6c548 12.11 闭环:二十用例点亮 + 单步观察。
- cases_test:tests/cases/01..20 逐一跑完整管线(解析→链接→类型→码→VM 周期),
  按 EXPECTED.md 期望断言:13 正例运行通过(含双周期可重复)、06 CycleLimit、6 负例报错类别
- BytecodeExecutor --step:采样 I → 逐指令打印 pc/fn/反汇编 + 执行后非零寄存器 → I/Q
- Machine 补 header()/ended()/nregs()/cur_instr() 观察接口
- ctest 11/11(cases_all 20 用例点亮);line1 回放 0/1 组合 Q 正确、单步 I=[0 1]→Q=[1]
2026-08-21 20:31:14 +08:00

103 lines
3.4 KiB
CMake

# 自动化用例
add_test(NAME stcompiler_version
COMMAND STCompiler)
add_test(NAME bytecode_executor_version
COMMAND BytecodeExecutor)
# isa 合同测试:链接 isa 库,断言覆盖饱和/编解码/disasm/哈希/映像/sidecar
add_executable(isa_test
./src/isa_test.cpp)
target_link_libraries(isa_test PRIVATE isa)
add_test(NAME isa_roundtrip
COMMAND isa_test)
# compiler 库测试:toml schema、文件集合、工程哈希(REPO_ROOT 注入源目录绝对路径)
add_executable(compiler_test
./src/compiler_test.cpp)
target_link_libraries(compiler_test PRIVATE compiler)
target_compile_definitions(compiler_test PRIVATE
REPO_ROOT="${CMAKE_SOURCE_DIR}")
add_test(NAME compiler_toml
COMMAND compiler_test)
# 词法测试:token 流 + 负例(REPO_ROOT 注入源目录绝对路径)
add_executable(lexer_test
./src/lexer_test.cpp)
target_link_libraries(lexer_test PRIVATE compiler)
target_compile_definitions(lexer_test PRIVATE
REPO_ROOT="${CMAKE_SOURCE_DIR}")
add_test(NAME lexer_tokens
COMMAND lexer_test)
# 语法测试:line1 AST 结构 + 负例(REPO_ROOT 注入源目录绝对路径)
add_executable(parser_test
./src/parser_test.cpp)
target_link_libraries(parser_test PRIVATE compiler)
target_compile_definitions(parser_test PRIVATE
REPO_ROOT="${CMAKE_SOURCE_DIR}")
add_test(NAME parser_syntax
COMMAND parser_test)
# 链接测试:用例 09/10/11/12/16/19 + line1 正例(REPO_ROOT 注入源目录绝对路径)
add_executable(linker_test
./src/linker_test.cpp)
target_link_libraries(linker_test PRIVATE compiler)
target_compile_definitions(linker_test PRIVATE
REPO_ROOT="${CMAKE_SOURCE_DIR}")
add_test(NAME linker_links
COMMAND linker_test)
# 类型检查测试:用例 14 + 负例 + 正例(REPO_ROOT 注入源目录绝对路径)
add_executable(typecheck_test
./src/typecheck_test.cpp)
target_link_libraries(typecheck_test PRIVATE compiler)
target_compile_definitions(typecheck_test PRIVATE
REPO_ROOT="${CMAKE_SOURCE_DIR}")
add_test(NAME typecheck_types
COMMAND typecheck_test)
# 寄存器码测试(12.8 切片 1):用例 01/02 出映像(REPO_ROOT 注入源目录绝对路径)
add_executable(codegen_test
./src/codegen_test.cpp)
target_link_libraries(codegen_test PRIVATE compiler)
target_compile_definitions(codegen_test PRIVATE
REPO_ROOT="${CMAKE_SOURCE_DIR}")
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)
# 12.2 二十用例点亮(12.11):按 EXPECTED.md 期望跑完整管线(REPO_ROOT 注入源目录绝对路径)
add_executable(cases_test
./src/cases_test.cpp)
target_link_libraries(cases_test PRIVATE compiler vm)
target_compile_definitions(cases_test PRIVATE
REPO_ROOT="${CMAKE_SOURCE_DIR}")
add_test(NAME cases_all
COMMAND cases_test)