测试:GoogleTest 全面单测(10工况设备表/故障检测/协议/消息/SQLite读回)+ UDP→SQLite 集成测试,src 零改动
build-test-deploy / ci (push) Failing after 11m45s

This commit is contained in:
zjk
2026-08-14 21:29:57 +08:00
parent f51a3ac750
commit de298414ff
14 changed files with 1286 additions and 13 deletions
+84 -4
View File
@@ -5,10 +5,12 @@ project(H100PowerMangerTests)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 需要 GoogleTest(由 CI Dockerfile 或本地安装,提供 GTestConfig/库)
find_package(GTest REQUIRED)
################################################SQLiteTest####################################################################
################################################SQLiteTest(保留原有)#######
# 添加 SQLite 测试可执行文件(不使用第三方测试库)
add_executable(SQLiteTest
add_executable(SQLiteTest
until/testSqlitdb.cpp
${CMAKE_SOURCE_DIR}/src/pPowerManger/sqlit3/SQLite.cpp
${CMAKE_SOURCE_DIR}/src/pPowerManger/sqlit3/sqlite3.c
@@ -16,7 +18,7 @@ add_executable(SQLiteTest
)
# 包含目录
target_include_directories(SQLiteTest PRIVATE
target_include_directories(SQLiteTest PRIVATE
${CMAKE_SOURCE_DIR}/src/pPowerManger
${CMAKE_SOURCE_DIR}/src/pPowerManger/sqlit3
)
@@ -27,4 +29,82 @@ target_link_libraries(SQLiteTest
dl
)
################################################PowerMangerTest####################################################################
################################################PowerMangerTests(gtest)####
# 综合单元测试:Driver / SystemData / FaultMap / Upmsg / UdpComm /
# PmSysvariable / SQLite 读回。仅链接现有 src 源码,不改动生产代码。
set(PM_SRC_DIR ${CMAKE_SOURCE_DIR}/src/pPowerManger)
set(PM_TEST_SOURCES
until/DriverTest.cpp
until/SystemDataTest.cpp
until/FaultMapTest.cpp
until/UpmsgTest.cpp
until/UdpCommTest.cpp
until/PmSysvariableTest.cpp
until/SqliteTest.cpp
)
add_executable(PowerMangerTests ${PM_TEST_SOURCES}
${PM_SRC_DIR}/driver.cpp
${PM_SRC_DIR}/udpcomm/udpComm.cpp
${PM_SRC_DIR}/upmsg/upmsg_definitions.cpp
${PM_SRC_DIR}/sqlit3/SQLite.cpp
${PM_SRC_DIR}/sqlit3/sqlite3.c
${PM_SRC_DIR}/logc/loguru.cpp
)
target_include_directories(PowerMangerTests PRIVATE
${PM_SRC_DIR}
${PM_SRC_DIR}/sqlit3
${PM_SRC_DIR}/upmsg
${PM_SRC_DIR}/udpcomm
${PM_SRC_DIR}/logc
)
# gtest 需要 C++14+
set_target_properties(PowerMangerTests PROPERTIES
CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON
)
# 兼容两种 gtest 安装方式:镜像安装(提供 GTest::gtest_main) 或 apt(仅 GTest_LIBRARIES)
if(TARGET GTest::gtest_main)
set(GTEST_LIBS GTest::gtest_main GTest::gtest)
else()
set(GTEST_LIBS ${GTest_LIBRARIES})
target_include_directories(PowerMangerTests PRIVATE ${GTest_INCLUDE_DIRS})
endif()
target_link_libraries(PowerMangerTests
${GTEST_LIBS}
${MOOS_LIBRARIES}
mbutil
jsoncpp
m
pthread
dl
)
################################################udpFeeder(集成测试用)#######
# 集成测试辅助:向 pPowerManger 发送真实 CCU 状态反馈 UDP 消息(字节级一致)
add_executable(udpFeeder
integration/udp_feeder.cpp
${PM_SRC_DIR}/udpcomm/udpComm.cpp
${PM_SRC_DIR}/logc/loguru.cpp
)
target_include_directories(udpFeeder PRIVATE
${PM_SRC_DIR}
${PM_SRC_DIR}/udpcomm
${PM_SRC_DIR}/logc
)
set_target_properties(udpFeeder PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
)
target_link_libraries(udpFeeder
${MOOS_LIBRARIES}
mbutil
m
pthread
dl
)