# 自动化用例 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)