From 395f30e076993bb759c72e5012c5769b56ae812c Mon Sep 17 00:00:00 2001 From: fancy <258828110.@qq.com> Date: Thu, 14 Sep 2023 07:54:42 -0700 Subject: [PATCH] Ipc config test. --- middleware/IpcConfig/CMakeLists.txt | 2 +- middleware/IpcConfig/include/IpcConfig.h | 20 ------- middleware/IpcConfig/src/IpcConfig.cpp | 6 ++ test/CMakeLists.txt | 2 +- test/middleware/CMakeLists.txt | 4 ++ test/middleware/IpcConfig/CMakeLists.txt | 58 +++++++++++++++++++ test/middleware/IpcConfig/mainTest.cpp | 9 +++ .../IpcConfig/src/IpcConfig_Test.cpp | 18 ++++++ utils/Config/src/Config.c | 6 ++ utils/Config/src/ConfigCode.c | 8 +-- utils/Config/src/ConfigImpl.c | 6 +- utils/StatusCode/src/StatusCode.c | 8 +++ 12 files changed, 120 insertions(+), 27 deletions(-) delete mode 100644 middleware/IpcConfig/include/IpcConfig.h create mode 100644 test/middleware/CMakeLists.txt create mode 100644 test/middleware/IpcConfig/CMakeLists.txt create mode 100644 test/middleware/IpcConfig/mainTest.cpp create mode 100644 test/middleware/IpcConfig/src/IpcConfig_Test.cpp diff --git a/middleware/IpcConfig/CMakeLists.txt b/middleware/IpcConfig/CMakeLists.txt index 9d348fc..7acd452 100644 --- a/middleware/IpcConfig/CMakeLists.txt +++ b/middleware/IpcConfig/CMakeLists.txt @@ -27,7 +27,7 @@ aux_source_directory(./src SRC_FILES) set(TARGET_NAME IpcConfig) add_library(${TARGET_NAME} STATIC ${SRC_FILES}) -target_link_libraries(${TARGET_NAME} ReturnCode Log) +target_link_libraries(${TARGET_NAME} Config StatusCode Log) if ("${CLANG_TIDY_SUPPORT}" MATCHES "true") add_custom_target( diff --git a/middleware/IpcConfig/include/IpcConfig.h b/middleware/IpcConfig/include/IpcConfig.h deleted file mode 100644 index 0a06f9f..0000000 --- a/middleware/IpcConfig/include/IpcConfig.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef IPCCONFIG_H -#define IPCCONFIG_H -#include "StatusCode.h" -#include -enum class IpcConfigKey -{ - TEST_NUM = 0, - END -}; -class IpcConfig -{ -public: - IpcConfig() = default; - virtual ~IpcConfig() = default; - static std::shared_ptr &GetInstance(std::shared_ptr *impl = nullptr); - const StatusCode Init(void); - const StatusCode UnInit(void); - const int GetInt(const IpcConfigKey &key); -}; -#endif \ No newline at end of file diff --git a/middleware/IpcConfig/src/IpcConfig.cpp b/middleware/IpcConfig/src/IpcConfig.cpp index afd834e..5dcef29 100644 --- a/middleware/IpcConfig/src/IpcConfig.cpp +++ b/middleware/IpcConfig/src/IpcConfig.cpp @@ -5,11 +5,17 @@ const StatusCode IpcConfig::Init(void) { memset(&mAllData, 0, sizeof(Config_s)); mCfg = OpenConfigFile(IPC_CONFIG_FILE_PATH); + if (nullptr == mCfg) + { + LogError("Open config file failed.\n"); + return CreateStatusCode(STATUS_CODE_NOT_OK); + } ReadAllConfigParameters(); return CreateStatusCode(STATUS_CODE_OK); } const StatusCode IpcConfig::UnInit(void) { + CloseConfigFile(mCfg); return CreateStatusCode(STATUS_CODE_OK); } const int IpcConfig::GetInt(const IpcConfigKey &key) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 47c6697..31ead2c 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -7,7 +7,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TEST_LINUX_MOCK}") execute_process(COMMAND sh build_gtest.sh ${TARGET_PLATFORM} ${CMAKE_SOURCE_DIR_IPCSDK} ${PLATFORM_PATH} WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/gtest/) # add_subdirectory(test_utils) # add_subdirectory(application) -# add_subdirectory(component) +add_subdirectory(middleware) add_subdirectory(utils) add_subdirectory(hal) diff --git a/test/middleware/CMakeLists.txt b/test/middleware/CMakeLists.txt new file mode 100644 index 0000000..4d6cf85 --- /dev/null +++ b/test/middleware/CMakeLists.txt @@ -0,0 +1,4 @@ + +# cmake_minimum_required(VERSION 2.8.0) +add_subdirectory(IpcConfig) + diff --git a/test/middleware/IpcConfig/CMakeLists.txt b/test/middleware/IpcConfig/CMakeLists.txt new file mode 100644 index 0000000..5a89acd --- /dev/null +++ b/test/middleware/IpcConfig/CMakeLists.txt @@ -0,0 +1,58 @@ +# include(${CMAKE_SOURCE_DIR}/build/independent_source.cmake) +include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake) +set(EXECUTABLE_OUTPUT_PATH ${TEST_OUTPUT_PATH}/bin) + +include_directories( + . + ./src + ./include + ${UTILS_SOURCE_PATH}/Log/include + ${UTILS_SOURCE_PATH}/StatusCode/include + ${MIDDLEWARE_SOURCE_PATH}/IpcConfig/include + ${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googletest/include + ${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googlemock/include +) + +link_directories( + ${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googlemock/lib + ${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googlemock/lib + ${LIBS_OUTPUT_PATH} + ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs +) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +aux_source_directory(. SRC_FILES) +aux_source_directory(./src SRC_FILES) + +set(TARGET_NAME IpcConfigTest) +add_executable(${TARGET_NAME} ${SRC_FILES}) +target_link_libraries(${TARGET_NAME} IpcConfig gtest gmock pthread) +if(${COVERAGE_ON} MATCHES "true") + target_link_libraries(${TARGET_NAME} gcov) +endif() +if ("${CLANG_TIDY_SUPPORT}" MATCHES "true") +add_custom_target( + IpcConfigTest_code_check + COMMAND ${CLANG_TIDY_EXE} + -checks='${CLANG_TIDY_CHECKS}' + --header-filter=.* + --system-headers=false + ${SRC_FILES} + ${CLANG_TIDY_CONFIG} + # --line-filter='[{\"name\":\"${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googletest/include/getest/gtest.h\"}]' + --line-filter='[{\"name\":\"${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googletest/include/getest/*.h\"}]' + -p ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell + WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/IpcConfig +) +add_custom_command( + TARGET ${TARGET_NAME} + PRE_BUILD + COMMAND make IpcConfigTest_code_check + WORKING_DIRECTORY ${PROJECT_ROOT_PATH}/cmake-shell/ +) +endif() \ No newline at end of file diff --git a/test/middleware/IpcConfig/mainTest.cpp b/test/middleware/IpcConfig/mainTest.cpp new file mode 100644 index 0000000..fb1d91b --- /dev/null +++ b/test/middleware/IpcConfig/mainTest.cpp @@ -0,0 +1,9 @@ +#include +#include +#include +#include +int main(int argc, char *argv[]) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} \ No newline at end of file diff --git a/test/middleware/IpcConfig/src/IpcConfig_Test.cpp b/test/middleware/IpcConfig/src/IpcConfig_Test.cpp new file mode 100644 index 0000000..cd259d7 --- /dev/null +++ b/test/middleware/IpcConfig/src/IpcConfig_Test.cpp @@ -0,0 +1,18 @@ +#include "ILog.h" +#include "IIpcConfig.h" +// #include +#include +namespace IpcConfigTest +{ + // ../output_files/test/bin/IpcConfigTest --gtest_filter=IpcConfigTest.Demo + TEST(IpcConfigTest, Demo) + { + CreateLogModule(); + CreateIpcConfig(); + ILogInit(LOG_INSTANCE_TYPE_END); + IIpcConfig::GetInstance()->Init(); + IIpcConfig::GetInstance()->UnInit(); + ILogUnInit(); + DestroyLogModule(); + } +} // namespace IpcConfigTest \ No newline at end of file diff --git a/utils/Config/src/Config.c b/utils/Config/src/Config.c index f445007..86f2645 100644 --- a/utils/Config/src/Config.c +++ b/utils/Config/src/Config.c @@ -1,5 +1,6 @@ #include "Config.h" #include "ConfigImpl.h" +#include "ILog.h" #include const StatusCode ConfigInit(void) { @@ -15,6 +16,11 @@ VConfig *OpenConfigFile(const char *fileName) } void CloseConfigFile(VConfig *cfg) { + if (NULL == cfg) + { + LogError("NULL config poniter.\n"); + return; + } ((Config *)cfg)->close(cfg); } const StatusCode ConfigGetInt(VConfig *cfg, const char *name, int *value) diff --git a/utils/Config/src/ConfigCode.c b/utils/Config/src/ConfigCode.c index 3963b2c..8dc916b 100644 --- a/utils/Config/src/ConfigCode.c +++ b/utils/Config/src/ConfigCode.c @@ -33,10 +33,10 @@ static StatusCode NewConfigCode(const long int code) } const StatusCode CreateConfigCode(const long int code) { - if (STATUS_CODE_OK <= code && code < STATUS_CODE_END) - { - return CreateStatusCode(code); - } + // if (STATUS_CODE_OK <= code && code < STATUS_CODE_END) + // { + // return CreateStatusCode(code); + // } if (STATUS_CODE_END <= code && code < CONFIG_CODE_END) { return NewConfigCode(code); diff --git a/utils/Config/src/ConfigImpl.c b/utils/Config/src/ConfigImpl.c index af0960e..98f7f59 100644 --- a/utils/Config/src/ConfigImpl.c +++ b/utils/Config/src/ConfigImpl.c @@ -39,6 +39,7 @@ static void ConfigImplInit(Config *cfg) } Config *NewConfig(const char *fileName) { + LogInfo("Config file name = %s\n", fileName); Config *cfg = (Config *)malloc(sizeof(Config)); ConfigImplInit(cfg); config_init(&(cfg->cfg)); @@ -46,10 +47,12 @@ Config *NewConfig(const char *fileName) CONFIG_OPTION_SEMICOLON_SEPARATORS | CONFIG_OPTION_COLON_ASSIGNMENT_FOR_GROUPS | CONFIG_OPTION_OPEN_BRACE_ON_SEPARATE_LINE)); - if (access(fileName, F_OK)) +#define FIEL_EXIST 0 + if (FIEL_EXIST == access(fileName, F_OK)) { if (!config_read_file(&(cfg->cfg), fileName)) { + LogError("Read file failed[%s].\n", fileName); fprintf(stderr, "%s:%d - %s\n", config_error_file(&(cfg->cfg)), config_error_line(&(cfg->cfg)), config_error_text(&(cfg->cfg))); // config_destroy(&(cfg->cfg)); @@ -58,6 +61,7 @@ Config *NewConfig(const char *fileName) } else { + LogInfo("Config file doesn't exist.\n"); /* Write out the new configuration. */ if (!config_write_file(&(cfg->cfg), fileName)) { diff --git a/utils/StatusCode/src/StatusCode.c b/utils/StatusCode/src/StatusCode.c index 2d81be9..1400e41 100644 --- a/utils/StatusCode/src/StatusCode.c +++ b/utils/StatusCode/src/StatusCode.c @@ -19,6 +19,14 @@ static const char *_PrintStringCode_(const StatusCode this) } static const bool CodeEqual(const StatusCode code, const char *value) { + if (STATUS_CODE_OK >= code.mStatusCode || code.mStatusCode >= STATUS_CODE_END) + { + return false; + } + if (strlen(value) != strlen(StatusCodeString[code.mStatusCode])) + { + return false; + } if (memcmp(value, StatusCodeString[code.mStatusCode], strlen(value)) == 0) { return true;