- Typecheck.h/cpp:三型(BOOL/INT/TIME)求值,AND/OR/NOT 只吃 BOOL、算术只吃 INT(TIME 无算术)、比较同型、IF/WHILE 条件必须 BOOL - FUNCTION 禁写全局(含经 VAR_EXTERNAL)——用例 14 点亮;函数名赋值=返回类型 - FB 命名实参匹配字段类型;FB 实例不能当值 - typecheck_test:23 断言(用例 14 + 8 类负例 + 13 个正例),ctest 8/8
70 lines
2.3 KiB
CMake
70 lines
2.3 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)
|