重构代码的架构设计,增加测试单元,提高代码可靠性
This commit is contained in:
108
tests/CMakeLists.txt
Normal file
108
tests/CMakeLists.txt
Normal file
@@ -0,0 +1,108 @@
|
||||
# tests 子工程最低 CMake 版本要求(与主工程保持一致)
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
# 预留:测试通用源码列表(当前未直接使用,可用于后续统一链接)
|
||||
set(DTU_TEST_COMMON_SOURCES
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/ascii.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/key.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/menu.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/display.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/TCP/tcp.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/thread_utils.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/remoteDisplay.c"
|
||||
)
|
||||
|
||||
# 封装测试目标创建逻辑:
|
||||
# - add_executable: 生成测试可执行文件
|
||||
# - target_include_directories: 注入项目头文件路径
|
||||
# - target_link_libraries: 按平台链接系统库
|
||||
# - add_test: 注册到 CTest,支持 ctest 统一执行
|
||||
function(add_dtu_test test_name)
|
||||
add_executable(${test_name} ${ARGN})
|
||||
# 测试目标可见的头文件目录
|
||||
target_include_directories(${test_name} PRIVATE
|
||||
"${CMAKE_SOURCE_DIR}/include"
|
||||
"${CMAKE_SOURCE_DIR}/src"
|
||||
"${CMAKE_SOURCE_DIR}/src/TCP"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv"
|
||||
)
|
||||
# 平台差异:Windows 需要 ws2_32,非 Windows 使用 pthread
|
||||
if(WIN32)
|
||||
target_link_libraries(${test_name} PRIVATE ws2_32)
|
||||
else()
|
||||
target_link_libraries(${test_name} PRIVATE pthread)
|
||||
endif()
|
||||
# 将测试程序注册为 CTest 用例,名称与目标名一致
|
||||
add_test(NAME ${test_name} COMMAND ${test_name})
|
||||
endfunction()
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Smoke 测试:验证测试框架本身可用
|
||||
# ------------------------------------------------------------
|
||||
add_dtu_test(test_smoke tests_smoke.c)
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# P0:高价值纯逻辑测试
|
||||
# ------------------------------------------------------------
|
||||
add_dtu_test(
|
||||
test_p0_remote_display
|
||||
test_p0_remote_display.c
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_draw.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_text.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/ascii.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/key.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/TCP/tcp.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/thread_utils.c"
|
||||
)
|
||||
add_dtu_test(
|
||||
test_p0_utf8_next
|
||||
test_p0_utf8_next.c
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_draw.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_text.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/ascii.c"
|
||||
)
|
||||
add_dtu_test(
|
||||
test_p0_utf8_hz12_get
|
||||
test_p0_utf8_hz12_get.c
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/ascii.c"
|
||||
)
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# P1:业务核心计算/状态流转测试
|
||||
# ------------------------------------------------------------
|
||||
add_dtu_test(
|
||||
test_p1_key
|
||||
test_p1_key.c
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/key.c"
|
||||
)
|
||||
add_dtu_test(
|
||||
test_p1_lcd_basic
|
||||
test_p1_lcd_basic.c
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_draw.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_text.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/ascii.c"
|
||||
)
|
||||
add_dtu_test(
|
||||
test_p1_menu
|
||||
test_p1_menu.c
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/display.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_draw.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_text.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/ascii.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/Drv/key.c"
|
||||
)
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# P2:集成测试(网络回环等)
|
||||
# ------------------------------------------------------------
|
||||
add_dtu_test(
|
||||
test_p2_tcp_loopback
|
||||
test_p2_tcp_loopback.c
|
||||
"${CMAKE_SOURCE_DIR}/src/TCP/tcp.c"
|
||||
"${CMAKE_SOURCE_DIR}/src/thread_utils.c"
|
||||
)
|
||||
Reference in New Issue
Block a user