From 402baf38f9fd12c5664752358b14bef27f99c24a Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Tue, 5 Mar 2024 00:25:30 -0800 Subject: [PATCH] Backup:test code. --- .../src/MissionStateMachine.cpp | 21 ++++++------ .../MissionManager/src/MissionStateMachine.h | 2 +- application/MissionManager/src/TopState.cpp | 13 ++++++-- .../StateMachine/include/IStateMachine.h | 2 +- .../src/OpenHarmony/state_machine.cpp | 6 ++-- .../src/OpenHarmony/state_machine.h | 4 +-- .../application/HunttingCamera/CMakeLists.txt | 10 +++++- .../src/HunttingCamera_Test.cpp | 18 +++++++++-- .../middleware/McuManager/tool/CMakeLists.txt | 1 + .../tool/include/McuManagerTestTool.h | 32 +------------------ .../tool/src/McuManagerMakePtrTest.cpp | 2 ++ .../tool/src/McuManagerTestTool.cpp | 1 + .../tool/src/McuProtocolTestTool.cpp | 6 +++- 13 files changed, 63 insertions(+), 55 deletions(-) diff --git a/application/MissionManager/src/MissionStateMachine.cpp b/application/MissionManager/src/MissionStateMachine.cpp index 29930a1..05ee447 100644 --- a/application/MissionManager/src/MissionStateMachine.cpp +++ b/application/MissionManager/src/MissionStateMachine.cpp @@ -44,7 +44,7 @@ void MissionStateMachine::Init(void) } mStartMission = GetStartMission(); if (mStartMission != IpcMission::END) { - // RunStateMachine(mStartMission); + RunStateMachine(mStartMission); } else { LogError("ipcmission error.\n"); @@ -59,19 +59,18 @@ IpcMission MissionStateMachine::GetStartMission(void) class McuAskIpcMission : public McuAsk, public McuAskBase { public: - McuAskIpcMission() : McuAskBase(McuAskBlock::NOT_BLOCK, McuAskReply::NEED_REPLY) - { - mDataReply = IpcMission::END; - } + McuAskIpcMission() : McuAskBase(McuAskBlock::BLOCK, McuAskReply::NEED_REPLY) { mDataReply = IpcMission::END; } virtual ~McuAskIpcMission() = default; }; std::shared_ptr ask = std::make_shared(); IMcuManager::GetInstance()->GetIpcMission(ask); return std::dynamic_pointer_cast(ask)->mDataReply; } -// void MissionStateMachine::RunStateMachine(const IpcMission &mission) -// { -// LogInfo("Make all states and start the state machine.\n"); -// mStateTree[MissionState::TOP_STATE] = MissionManagerMakePtr::GetInstance()->CreateTopState(); -// mStateMachine->SetTopState(mStateTree[MissionState::TOP_STATE].get()); -// } +void MissionStateMachine::RunStateMachine(const IpcMission &mission) +{ + LogInfo("Make all states and start the state machine.\n"); + mStateTree[MissionState::TOP_STATE] = MissionManagerMakePtr::GetInstance()->CreateTopState(); + mStateMachine->StatePlus(mStateTree[MissionState::TOP_STATE].get(), nullptr); + mStateMachine->SetCurrentState(mStateTree[MissionState::TOP_STATE].get()); + mStateMachine->StartStateMachine(); +} diff --git a/application/MissionManager/src/MissionStateMachine.h b/application/MissionManager/src/MissionStateMachine.h index 347ffa2..6b21066 100644 --- a/application/MissionManager/src/MissionStateMachine.h +++ b/application/MissionManager/src/MissionStateMachine.h @@ -35,7 +35,7 @@ public: private: IpcMission GetStartMission(void); - // void RunStateMachine(const IpcMission &mission); + void RunStateMachine(const IpcMission &mission); private: std::shared_ptr mStateMachine; diff --git a/application/MissionManager/src/TopState.cpp b/application/MissionManager/src/TopState.cpp index ffd1b94..2f3671d 100644 --- a/application/MissionManager/src/TopState.cpp +++ b/application/MissionManager/src/TopState.cpp @@ -13,7 +13,16 @@ * limitations under the License. */ #include "TopState.h" +#include "ILog.h" TopState::TopState() : State("TopState") {} -void TopState::GoInState() {} -void TopState::GoOutState() {} +void TopState::GoInState() +{ + // + LogInfo(" ========== opState::GoInState.\n"); +} +void TopState::GoOutState() +{ + // + LogInfo(" ========== opState::GoOutState.\n"); +} bool TopState::ExecuteStateMsg(VStateMachineData *msg) { return DataProcessing::EventHandle(msg); } \ No newline at end of file diff --git a/middleware/StateMachine/include/IStateMachine.h b/middleware/StateMachine/include/IStateMachine.h index 15142ea..67bac97 100644 --- a/middleware/StateMachine/include/IStateMachine.h +++ b/middleware/StateMachine/include/IStateMachine.h @@ -55,7 +55,7 @@ public: virtual ~VStateMachineHandle() = default; virtual bool InitialStateMachine() { return false; } virtual void StatePlus(State *state, State *upper) {} - virtual void SetTopState(State *firstState) {} + virtual void SetCurrentState(State *firstState) {} virtual void StartStateMachine() {} virtual void SendMessage(int msgName) {} virtual void StopHandlerThread() {} diff --git a/middleware/StateMachine/src/OpenHarmony/state_machine.cpp b/middleware/StateMachine/src/OpenHarmony/state_machine.cpp index e06e236..49b9760 100644 --- a/middleware/StateMachine/src/OpenHarmony/state_machine.cpp +++ b/middleware/StateMachine/src/OpenHarmony/state_machine.cpp @@ -95,14 +95,14 @@ void StateMachine::StateDelete(State *state) pStateMachineHandler->StateDelete(state); } -void StateMachine::SetTopState(State *firstState) +void StateMachine::SetCurrentState(State *firstState) { if (pStateMachineHandler == nullptr) { LogError("Start StateMachine failed, pStateMachineHandler is nullptr!\n"); return; } - pStateMachineHandler->SetTopState(firstState); + pStateMachineHandler->SetCurrentState(firstState); } void StateMachine::SwitchState(State *targetState) @@ -382,7 +382,7 @@ void StateMachineHandler::StateDelete(State *state) } } -void StateMachineHandler::SetTopState(State *firstState) +void StateMachineHandler::SetCurrentState(State *firstState) { pFirstState = firstState; } diff --git a/middleware/StateMachine/src/OpenHarmony/state_machine.h b/middleware/StateMachine/src/OpenHarmony/state_machine.h index 99b3e99..766ffb7 100644 --- a/middleware/StateMachine/src/OpenHarmony/state_machine.h +++ b/middleware/StateMachine/src/OpenHarmony/state_machine.h @@ -298,7 +298,7 @@ protected: * * @param firstState - First state.[in] */ - void SetTopState(State *firstState) override; + void SetCurrentState(State *firstState) override; /** * @Description : Transition to orther state. @@ -375,7 +375,7 @@ public: * * @param firstState - Initialization State.[in] */ - void SetTopState(State *firstState); + void SetCurrentState(State *firstState); /** * @Description : State transition function. diff --git a/test/application/HunttingCamera/CMakeLists.txt b/test/application/HunttingCamera/CMakeLists.txt index 8f47ae8..5bf5957 100644 --- a/test/application/HunttingCamera/CMakeLists.txt +++ b/test/application/HunttingCamera/CMakeLists.txt @@ -7,8 +7,16 @@ include_directories( ./src ./tool/include ${HUNTTING_MAIN_INCLUDE_PATH} + ${MIDDLEWARE_SOURCE_PATH}/McuManager/include + ${MIDDLEWARE_SOURCE_PATH}/McuManager/src + ${UTILS_SOURCE_PATH}/McuProtocol/include + ${UTILS_SOURCE_PATH}/UartDevice/include ${TEST_SOURCE_PATH} + ${TEST_SOURCE_PATH}/middleware/McuManager/tool/include + ${TEST_SOURCE_PATH}/utils/LinuxApiMock/include ${TEST_SOURCE_PATH}/utils/TestManager/include + ${TEST_SOURCE_PATH}/utils/McuProtocol/tool/include + ${TEST_SOURCE_PATH}/utils/UartDevice/tool/include ${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googletest/include ${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googlemock/include ) @@ -26,7 +34,7 @@ endif() set(TARGET_NAME HunttingCameraTest) add_executable(${TARGET_NAME} ${SRC_FILES_MAIN} ${SRC_FILES}) -target_link_libraries(${TARGET_NAME} HunttingMainLib McuManagerTestTool TestManager gtest gmock pthread) +target_link_libraries(${TARGET_NAME} HunttingMainLib McuManagerTestTool McuAskBaseTestTool TestManager gtest gmock pthread) if(${TEST_COVERAGE} MATCHES "true") target_link_libraries(${TARGET_NAME} gcov) endif() diff --git a/test/application/HunttingCamera/src/HunttingCamera_Test.cpp b/test/application/HunttingCamera/src/HunttingCamera_Test.cpp index a581340..e066971 100644 --- a/test/application/HunttingCamera/src/HunttingCamera_Test.cpp +++ b/test/application/HunttingCamera/src/HunttingCamera_Test.cpp @@ -15,11 +15,12 @@ #include "GtestUsing.h" #include "ILog.h" #include "MainThread.h" +#include "McuManagerTestTool.h" #include "TestManager.h" #include namespace HunttingCameraTest { -class HunttingCameraTest : public testing::Test, public TestManager +class HunttingCameraTest : public testing::Test, public TestManager, public McuManagerTestTool { public: HunttingCameraTest() {} @@ -37,6 +38,11 @@ public: // HunttingCameraTestTool::Init(); // CreateHalCppModule(); // CreateDeviceManagerModule(); + mLinuxTest = LinuxTest::CreateLinuxTest(); + std::shared_ptr test = mLinuxTest; + LinuxApiMock::GetInstance(&test); + LinuxApiMock::GetInstance()->Init(); + McuManagerTestTool::Init(mLinuxTest); TestManager::Init(); } virtual void TearDown() @@ -46,7 +52,16 @@ public: // DestroyDeviceManagerModule(); // DestroyAllKeysMock(); TestManager::UnInit(); + LinuxApiMock::GetInstance()->UnInit(); + mLinuxTest = std::make_shared(); + std::shared_ptr test = std::make_shared(); + LinuxApiMock::GetInstance(&test); + McuManagerTestTool::UnInit(); + MainThread::GetInstance()->UnInit(); } + +public: + std::shared_ptr mLinuxTest; }; // ../output_files/test/bin/HunttingCameraTest --gtest_filter=HunttingCameraTest.INTEGRATION_DeviceManager_EXAMPLE_Demo TEST_F(HunttingCameraTest, INTEGRATION_DeviceManager_EXAMPLE_Demo) @@ -54,6 +69,5 @@ TEST_F(HunttingCameraTest, INTEGRATION_DeviceManager_EXAMPLE_Demo) MainThread::GetInstance()->Init(); TestManager::ResetTimeOut(1000 * 3); MainThread::GetInstance()->Runing(); - MainThread::GetInstance()->UnInit(); } } // namespace HunttingCameraTest \ No newline at end of file diff --git a/test/middleware/McuManager/tool/CMakeLists.txt b/test/middleware/McuManager/tool/CMakeLists.txt index 09d1c2c..d2f6562 100644 --- a/test/middleware/McuManager/tool/CMakeLists.txt +++ b/test/middleware/McuManager/tool/CMakeLists.txt @@ -9,6 +9,7 @@ include_directories( ${UTILS_SOURCE_PATH}/Log/include ${UTILS_SOURCE_PATH}/McuProtocol/include ${MIDDLEWARE_SOURCE_PATH}/McuManager/src + ${TEST_SOURCE_PATH} ${TEST_SOURCE_PATH}/utils/LinuxApiMock/include ${TEST_SOURCE_PATH}/utils/McuProtocol/tool/include ) diff --git a/test/middleware/McuManager/tool/include/McuManagerTestTool.h b/test/middleware/McuManager/tool/include/McuManagerTestTool.h index bde6775..745214c 100644 --- a/test/middleware/McuManager/tool/include/McuManagerTestTool.h +++ b/test/middleware/McuManager/tool/include/McuManagerTestTool.h @@ -14,40 +14,10 @@ */ #ifndef MCU_MANAGER_TEST_TOOL_H #define MCU_MANAGER_TEST_TOOL_H +#include "GtestUsing.h" #include "LinuxApiMock.h" #include "McuManagerImpl.h" #include "McuProtocolTestTool.h" -#include -#include -using ::testing::_; -using ::testing::Action; -using ::testing::ActionInterface; -using ::testing::AnyNumber; -using ::testing::Assign; -using ::testing::AtLeast; -using ::testing::ByMove; -using ::testing::ByRef; -using ::testing::DefaultValue; -using ::testing::DoAll; -using ::testing::DoDefault; -using ::testing::IgnoreResult; -using ::testing::Invoke; -using ::testing::InvokeWithoutArgs; -using ::testing::MakePolymorphicAction; -using ::testing::PolymorphicAction; -using ::testing::Return; -using ::testing::ReturnNew; -using ::testing::ReturnNull; -using ::testing::ReturnPointee; -using ::testing::ReturnRef; -using ::testing::ReturnRefOfCopy; -using ::testing::ReturnRoundRobin; -using ::testing::SaveArg; -using ::testing::SetArgPointee; -using ::testing::SetArgumentPointee; -using ::testing::Unused; -using ::testing::WithArgs; -using ::testing::internal::BuiltInDefaultValue; class McuManagerImplTest : public McuManagerImpl { public: diff --git a/test/middleware/McuManager/tool/src/McuManagerMakePtrTest.cpp b/test/middleware/McuManager/tool/src/McuManagerMakePtrTest.cpp index 02e73fa..a14ac39 100644 --- a/test/middleware/McuManager/tool/src/McuManagerMakePtrTest.cpp +++ b/test/middleware/McuManager/tool/src/McuManagerMakePtrTest.cpp @@ -32,6 +32,8 @@ void CancelOverrideMcuManagerMakePtrObject(void) if (test) { test->mMcuManagerMock.reset(); } + tmp.reset(); + test.reset(); std::shared_ptr impl = std::make_shared(); McuManagerMakePtr::GetInstance(&impl); } diff --git a/test/middleware/McuManager/tool/src/McuManagerTestTool.cpp b/test/middleware/McuManager/tool/src/McuManagerTestTool.cpp index 23dd4d9..ff4ef6a 100644 --- a/test/middleware/McuManager/tool/src/McuManagerTestTool.cpp +++ b/test/middleware/McuManager/tool/src/McuManagerTestTool.cpp @@ -34,6 +34,7 @@ void McuManagerTestTool::Init(std::shared_ptr &mock) } void McuManagerTestTool::UnInit(void) { + LogInfo("McuManagerTestTool::UnInit\n"); mMcuManagerMock.reset(); CancelOverrideMcuManagerMakePtrObject(); UartDeviceTestTool::UnregisterUartDevice(gUartDevice); diff --git a/test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp b/test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp index 7340045..18b3284 100644 --- a/test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp +++ b/test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp @@ -122,12 +122,12 @@ void McuProtocolTestTool::UnInit(void) } mSerialNumberList.clear(); if (mPipeFdMockSelectInit) { + mPipeFdMockSelectInit = false; close(mPipeFdMockSelect[PIPE_READ_FD_INDEX]); close(mPipeFdMockSelect[PIPE_WRITE_FD_INDEX]); mPipeFdMockSelect[PIPE_READ_FD_INDEX] = -1; mPipeFdMockSelect[PIPE_WRITE_FD_INDEX] = -1; } - mPipeFdMockSelectInit = false; mUartFd = INVALID_FD; std::shared_ptr monitor = std::make_shared(); ProtocolMonitor::GetInstance(&monitor); @@ -182,6 +182,10 @@ void McuProtocolTestTool::ReplySelectSucceed(std::shared_ptr &mock, c selectResult = select(mPipeFdMockSelect[PIPE_READ_FD_INDEX] + 1, &fdsRead, NULL, NULL, timeout); if (selectResult) { // Do nothing here. + if (false == mPipeFdMockSelectInit) { + LogWarning("mPipeFdMockSelectInit = false.\n"); + return; + } ssize_t length = read(mPipeFdMockSelect[PIPE_READ_FD_INDEX], buf, READ_BUF_LENGTH); if (READ_FAILD == length) { LogError("mPipeFdMockSelect failed.\n");