From 6d23741b7725a33885475202ff7fbd1772d10f9d Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Sun, 3 Mar 2024 19:04:45 -0800 Subject: [PATCH] Backup:AppManager test code. --- .../AppManager/src/AppManagerMakePtr.cpp | 4 ++-- test/middleware/AppManager/CMakeLists.txt | 2 +- .../AppManager/src/AppManager_Test.cpp | 11 ++++------- test/middleware/AppManager/tool/CMakeLists.txt | 3 ++- .../tool/include/AppManagerTestTool.h | 4 ++++ .../tool/src/AppManagerMakePtrTest.cpp | 2 ++ .../tool/src/AppManagerMakePtrTest.h | 4 ++-- .../AppManager/tool/src/AppManagerMock.cpp | 2 +- .../AppManager/tool/src/AppManagerTestTool.cpp | 18 ++++++++++++++++++ .../AppManager/tool/src/ServersMock.cpp | 1 + 10 files changed, 37 insertions(+), 14 deletions(-) diff --git a/middleware/AppManager/src/AppManagerMakePtr.cpp b/middleware/AppManager/src/AppManagerMakePtr.cpp index 55570ecb..d621932f 100644 --- a/middleware/AppManager/src/AppManagerMakePtr.cpp +++ b/middleware/AppManager/src/AppManagerMakePtr.cpp @@ -15,10 +15,10 @@ #include "AppManagerMakePtr.h" #include "AppManager.h" #include "ILog.h" -extern bool CreateProtocolHandleImpl(); +// extern bool CreateProtocolHandleImpl(); bool CreateAppManagerModule(void) { - CreateProtocolHandleImpl(); // TODO: not good for gtest. + // CreateProtocolHandleImpl(); // TODO: not good for gtest. auto instance = std::make_shared(); StatusCode code = AppManagerMakePtr::GetInstance()->CreateAppManager(instance); if (IsCodeOK(code)) { diff --git a/test/middleware/AppManager/CMakeLists.txt b/test/middleware/AppManager/CMakeLists.txt index 928eeada..d978ade5 100644 --- a/test/middleware/AppManager/CMakeLists.txt +++ b/test/middleware/AppManager/CMakeLists.txt @@ -45,7 +45,7 @@ endif() set(TARGET_NAME AppManagerTest) add_executable(${TARGET_NAME} ${SRC_FILES_MAIN} ${SRC_FILES}) -target_link_libraries(${TARGET_NAME} AppManager AppManagerTestTool gtest gmock pthread) +target_link_libraries(${TARGET_NAME} AppManagerTestTool gtest gmock pthread) if(${TEST_COVERAGE} MATCHES "true") target_link_libraries(${TARGET_NAME} gcov) endif() diff --git a/test/middleware/AppManager/src/AppManager_Test.cpp b/test/middleware/AppManager/src/AppManager_Test.cpp index 79e83117..c6903723 100644 --- a/test/middleware/AppManager/src/AppManager_Test.cpp +++ b/test/middleware/AppManager/src/AppManager_Test.cpp @@ -33,18 +33,13 @@ public: static void TearDownTestCase() { ILogUnInit(); } virtual void SetUp() { - // CreateAllKeysMcok(); - // HalTestTool::Init(); - // AppManagerTestTool::Init(); - // CreateHalCppModule(); + AppManagerTestTool::Init(); CreateAppManagerModule(); } virtual void TearDown() { - // HalTestTool::UnInit(); - // AppManagerTestTool::UnInit(); + AppManagerTestTool::UnInit(); DestroyAppManagerModule(); - // DestroyAllKeysMock(); } protected: @@ -70,7 +65,9 @@ TEST_F(AppManagerTest, INTEGRATION_AppManager_EXAMPLE_Demo) // ../output_files/test/bin/AppManagerTest --gtest_filter=AppManagerTest.INTEGRATION_AppManager_EXAMPLE_AUTO_Upload TEST_F(AppManagerTest, INTEGRATION_AppManager_EXAMPLE_AUTO_Upload) { + std::shared_ptr monitor = AppManagerTestTool::MakeMonitorMock(); IAppManager::GetInstance()->Init(mAppParam); + IAppManager::GetInstance()->SetAppMonitor(monitor); std::this_thread::sleep_for(std::chrono::milliseconds(100)); MockUploadFiles(); std::this_thread::sleep_for(std::chrono::milliseconds(1000)); diff --git a/test/middleware/AppManager/tool/CMakeLists.txt b/test/middleware/AppManager/tool/CMakeLists.txt index 657edef5..331828c8 100644 --- a/test/middleware/AppManager/tool/CMakeLists.txt +++ b/test/middleware/AppManager/tool/CMakeLists.txt @@ -9,6 +9,7 @@ include_directories( ${UTILS_SOURCE_PATH}/Log/include ${UTILS_SOURCE_PATH}/Servers/include ${MIDDLEWARE_SOURCE_PATH}/AppManager/src + ${MIDDLEWARE_SOURCE_PATH}/AppManager/src/Protocol/SixFrame ${TEST_SOURCE_PATH} ${TEST_SOURCE_PATH}/utils/LinuxApiMock/include ${TEST_SOURCE_PATH}/utils/McuProtocol/tool/include @@ -32,7 +33,7 @@ add_definitions(-DAPP_MANAGER_HTTP_SERVER_PORT=${APP_MANAGER_HTTP_SERVER_PORT}) aux_source_directory(./src TEST_TOOL_SRC_FILES) set(TEST_TOOL_TARGET AppManagerTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) -target_link_libraries(${TEST_TOOL_TARGET} Servers Log) +target_link_libraries(${TEST_TOOL_TARGET} AppManager Servers Log) if ("${CLANG_TIDY_SUPPORT}" MATCHES "true") add_custom_target( diff --git a/test/middleware/AppManager/tool/include/AppManagerTestTool.h b/test/middleware/AppManager/tool/include/AppManagerTestTool.h index 22edadbd..8e34303c 100644 --- a/test/middleware/AppManager/tool/include/AppManagerTestTool.h +++ b/test/middleware/AppManager/tool/include/AppManagerTestTool.h @@ -35,5 +35,9 @@ private: private: std::shared_ptr mAppManagerMock; std::shared_ptr mAppMonitorMock; + +public: + static std::shared_ptr MakeMonitorMock(void); + void AppMonitorInit(std::shared_ptr &vMock); }; #endif \ No newline at end of file diff --git a/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.cpp b/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.cpp index db0c83dd..ad9a7b09 100644 --- a/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.cpp +++ b/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.cpp @@ -30,6 +30,8 @@ void CancelOverrideAppManagerMakePtrObject(void) if (test) { test->mAppManagerMock.reset(); } + tmp.reset(); + test.reset(); std::shared_ptr impl = std::make_shared(); AppManagerMakePtr::GetInstance(&impl); } diff --git a/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.h b/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.h index cd49153a..cf6c97a1 100644 --- a/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.h +++ b/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.h @@ -14,12 +14,12 @@ */ #ifndef APP_MANAGER_MAKE_PTR_TEST_H #define APP_MANAGER_MAKE_PTR_TEST_H -#include "AppManagerMakePtr.h" #include "AppManagerMock.h" #include "AppManagerTestTool.h" +#include "SixFrameMakePtr.h" void OverrideAppManagerMakePtrObject(std::shared_ptr &appManagerMock); void CancelOverrideAppManagerMakePtrObject(void); -class AppManagerMakePtrTest : public AppManagerMakePtr +class AppManagerMakePtrTest : public SixFrameMakePtr { public: AppManagerMakePtrTest(); diff --git a/test/middleware/AppManager/tool/src/AppManagerMock.cpp b/test/middleware/AppManager/tool/src/AppManagerMock.cpp index 07445b07..ec721bdb 100644 --- a/test/middleware/AppManager/tool/src/AppManagerMock.cpp +++ b/test/middleware/AppManager/tool/src/AppManagerMock.cpp @@ -16,7 +16,7 @@ #include "ILog.h" const StatusCode AppManagerTest::SetAppMonitor(std::shared_ptr &monitor) { - LogInfo("AppManagerTest::GetAllLeds\n"); + LogInfo("AppManagerTest::SetAppMonitor\n"); StatusCode code = SetAppMonitorTrace(monitor); if (StatusCodeEqual(code, "STATUS_CODE_VIRTUAL_FUNCTION")) { return AppManager::SetAppMonitor(monitor); diff --git a/test/middleware/AppManager/tool/src/AppManagerTestTool.cpp b/test/middleware/AppManager/tool/src/AppManagerTestTool.cpp index 8eebfc95..5e395ab3 100644 --- a/test/middleware/AppManager/tool/src/AppManagerTestTool.cpp +++ b/test/middleware/AppManager/tool/src/AppManagerTestTool.cpp @@ -51,9 +51,27 @@ void AppManagerTestTool::AppManagerMockInit(std::shared_ptr &vMock) auto getAppMonitor = [=](std::shared_ptr &monitor) { LogInfo("mAppMonitorMock get.\n"); mAppMonitorMock = std::dynamic_pointer_cast(monitor); + AppManagerTestTool::AppMonitorInit(mAppMonitorMock); }; constexpr int ONLY_BE_CALLED_ONCE = 1; EXPECT_CALL(*mock.get(), SetAppMonitorTrace(_)) .Times(ONLY_BE_CALLED_ONCE) .WillOnce(DoAll(WithArgs<0>(Invoke(getAppMonitor)), Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION)))); +} +std::shared_ptr AppManagerTestTool::MakeMonitorMock(void) +{ + auto monitor = std::make_shared(); + EXPECT_CALL(*monitor.get(), GetProductInfoTrace(_)) + .WillRepeatedly(DoAll(Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION)))); + EXPECT_CALL(*monitor.get(), UploadFileTrace(_)) + .WillRepeatedly(DoAll(Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION)))); + return monitor; +} +void AppManagerTestTool::AppMonitorInit(std::shared_ptr &vMock) +{ + std::shared_ptr mock = std::dynamic_pointer_cast(vMock); + if (mock) { + EXPECT_CALL(*mock.get(), UploadFileTrace(_)) + .WillRepeatedly(DoAll(Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION)))); + } } \ No newline at end of file diff --git a/test/middleware/AppManager/tool/src/ServersMock.cpp b/test/middleware/AppManager/tool/src/ServersMock.cpp index 44866330..a071f5a7 100644 --- a/test/middleware/AppManager/tool/src/ServersMock.cpp +++ b/test/middleware/AppManager/tool/src/ServersMock.cpp @@ -73,6 +73,7 @@ void ServersMock::MockUploadFiles(void) ServerHttp *http = NewServersHttp(mockRequest.c_str()); if (http) { http->filePath = (char *)PLATFORM_PATH "/output_files/test/bin/AppManagerTest"; + LogInfo("http post file:%s\n", http->filePath); HttpPostFile(http); if (http->reply) { char *replyStr = (char *)malloc(http->replyLength + 1);