Files
H100PowerManger/test/CMakeLists.txt
T
zjk 0639b5904d pCCU 新增真实CCU配电桥接(rcu链路原帧透传+网页显示)并适配板卡端口拓扑
- protocol/DisProtocol: 配电协议8条消息(指令0x0001~4/反馈0x0005~8, Sum8),复用pmSysvariable结构体+static_assert核对
- ChecksumPolicy 新增 Sum8;Frame 支持 1 字节校验和
- MessageRegistry 支持 (id+帧总长) 二维查找:配电指令与PM操控指令共用id按帧长区分(帧头length字段不可信)
- LinkManager: 按实际帧长分发 + sendRaw原帧透传 + 非本协议帧头落库节流告警;UdpEndpoint sendTo 加锁
- comm/RcuLinkManager: 真实CCU链路;core/DisBridge: 配电桥接器(反馈转pPowerManger+解码显示,指令转真实CCU,0x0004仅显示不转发)
- 网页新增"真实CCU"页签全字段展示;SnapshotBuilder realCcu 节 + rcu 链路描述
- h100.moos: 端口腾挪(真实CCU固定上报5001归pCCU,pPowerManger iport=5002),rcu_remote=192.168.0.140:7000
- 测试: pccuTest 新增配电/Sum8/长度分发/RCU注册表用例(176项);集成测试新增桥接字节一致+不误转发用例
2026-09-01 15:06:11 +08:00

164 lines
4.4 KiB
CMake
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
cmake_minimum_required(VERSION 3.10)
project(H100PowerMangerTests)
# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 需要 GoogleTest(由 CI Dockerfile 或本地安装,提供 GTestConfig/库)
find_package(GTest REQUIRED)
################################################SQLiteTest(保留原有)#######
# 添加 SQLite 测试可执行文件(不使用第三方测试库)
add_executable(SQLiteTest
until/testSqlitdb.cpp
${CMAKE_SOURCE_DIR}/src/pPowerManger/sqlit3/SQLite.cpp
${CMAKE_SOURCE_DIR}/src/pPowerManger/sqlit3/sqlite3.c
${CMAKE_SOURCE_DIR}/src/pPowerManger/logc/loguru.cpp
)
# 包含目录
target_include_directories(SQLiteTest PRIVATE
${CMAKE_SOURCE_DIR}/src/pPowerManger
${CMAKE_SOURCE_DIR}/src/pPowerManger/sqlit3
)
# 链接库文件
target_link_libraries(SQLiteTest
pthread
dl
)
################################################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
)
################################################fullFeeder(集成测试用)#######
# 全类型 UDP 仿真器:CCU 状态 + 4 路配电反馈(自包含,仅依赖协议结构体头文件)
add_executable(fullFeeder
integration/full_feeder.cpp
)
target_include_directories(fullFeeder PRIVATE
${PM_SRC_DIR}
${PM_SRC_DIR}/udpcomm
)
set_target_properties(fullFeeder PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
)
target_link_libraries(fullFeeder
pthread
)
################################################pccuTest(pCCU 单元测试)#####
# pCCU 协议编解码 / 校验和 / 链路分发 / 数据库 单元测试
set(CCU_DIR ${CMAKE_SOURCE_DIR}/src/pCCU)
add_executable(pccuTest
pccu/pccuTest.cpp
${CCU_DIR}/protocol/Frame.cpp
${CCU_DIR}/protocol/Message.cpp
${CCU_DIR}/protocol/MessageRegistry.cpp
${CCU_DIR}/protocol/FcProtocol.cpp
${CCU_DIR}/protocol/PmProtocol.cpp
${CCU_DIR}/protocol/DisProtocol.cpp
${CCU_DIR}/protocol/CanBms.cpp
${CCU_DIR}/comm/UdpEndpoint.cpp
${CCU_DIR}/comm/LinkManager.cpp
${CCU_DIR}/store/DbStore.cpp
${PM_SRC_DIR}/sqlit3/sqlite3.c
${PM_SRC_DIR}/logc/loguru.cpp
)
target_include_directories(pccuTest PRIVATE
${CCU_DIR}
${PM_SRC_DIR}
${PM_SRC_DIR}/sqlit3
${PM_SRC_DIR}/logc
)
set_target_properties(pccuTest PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
)
target_link_libraries(pccuTest
${MOOS_LIBRARIES}
m
pthread
dl
)