diff options
| author | zhengchao <[email protected]> | 2018-09-26 19:30:15 +0800 |
|---|---|---|
| committer | zhengchao <[email protected]> | 2018-09-26 19:30:15 +0800 |
| commit | a49222cc1d8a1902c8a42ab33014bc8277d34423 (patch) | |
| tree | 26ddfc5d281e994e93508dd2e89ae2c72bf56712 | |
| parent | 4d5b5f1f4523b65ef9ce72e16fe816ac55838271 (diff) | |
1)hiredis-vip静态链接到maat;2)maat_redis_tool静态链接libmaatframe.a;3)增加文件删除的测试用例。
| -rw-r--r-- | .gitignore | 51 | ||||
| -rw-r--r-- | CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/CMakeLists.txt | 7 | ||||
| -rw-r--r-- | src/entry/Maat_command.cpp | 2 | ||||
| -rw-r--r-- | src/entry/Maat_rule.cpp | 2 | ||||
| -rw-r--r-- | test/test_maatframe.cpp | 50 | ||||
| -rw-r--r-- | tools/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | vendor/CMakeLists.txt | 30 | ||||
| -rw-r--r-- | vendor/googletest-release-1.8.0.tar.gz | bin | 0 -> 1281617 bytes | |||
| -rw-r--r-- | vendor/hiredis-vip-0.3.0.tar.gz | bin | 0 -> 89575 bytes |
10 files changed, 110 insertions, 37 deletions
@@ -1,9 +1,44 @@ -SI/ -*.I* -*.P* -*.S* -*.W* -*.[od] -*.[1-9]* -*.log +# Created by https://www.gitignore.io/api/c++,clion + +### C++ ### +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la *.a +*.lib + +# Executables +*.exe +*.out +*.app + +# CMake +cmake-build-*/ + +# Clion +.idea/ + +# Vscode +.vscode/* diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c60a47..acafaae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required (VERSION 3.5) project (maatframe) set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wall) +set(MAAT_DEPEND_DYN_LIB MESA_handle_logger MESA_htable pcre rulescan pthread m pcre MESA_field_stat2 crypto) include_directories(${PROJECT_SOURCE_DIR}/inc/) include_directories(/opt/MESA/include/MESA/) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dd69c40..ee1ce60 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.5) project(maatframe) set(MAAT_FRAME_MAJOR_VERSION 2) -set(MAAT_FRAME_MINOR_VERSION 2) +set(MAAT_FRAME_MINOR_VERSION 3) set(MAAT_FRAME_PATCH_VERSION 20180926) set(MAAT_FRAME_VERSION ${MAAT_FRAME_MAJOR_VERSION}.${MAAT_FRAME_MINOR_VERSION}.${MAAT_FRAME_PATCH_VERSION}) @@ -19,7 +19,8 @@ set_target_properties(maat_frame_static PROPERTIES LINKER_LANGUAGE CXX) set_target_properties(maat_frame_static PROPERTIES OUTPUT_NAME maatframe) set_target_properties(maat_frame_static PROPERTIES CLEAN_DIRECT_OUTPUT 1) target_include_directories(maat_frame_static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/inc_internal/) -target_include_directories(maat_frame_static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/inc_internal/hiredis) +#target_include_directories(maat_frame_static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/inc_internal/hiredis) +target_link_libraries(maat_frame_static hiredis-vip-static) # Shared Library Output add_library(maat_frame_shared SHARED ${MAAT_SRC}) @@ -30,7 +31,7 @@ set_target_properties(maat_frame_shared PROPERTIES VERSION ${MAAT_FRAME_MAJOR_VE set_target_properties(maat_frame_shared PROPERTIES SOVERSION ${MAAT_FRAME_MAJOR_VERSION}) target_include_directories(maat_frame_shared PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/inc_internal/) target_include_directories(maat_frame_shared PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/inc_internal/hiredis) -target_link_libraries(maat_frame_shared MESA_handle_logger MESA_htable pcre rulescan pthread m pcre MESA_field_stat2 crypto hiredis_vip) +target_link_libraries(maat_frame_shared hiredis-vip-static ${MAAT_DEPEND_DYN_LIB}) install(DIRECTORY ${PROJECT_SOURCE_DIR}/inc/ DESTINATION /opt/MESA/include/MESA/ FILES_MATCHING PATTERN "*.h") install(TARGETS maat_frame_shared DESTINATION /opt/MESA/lib/) diff --git a/src/entry/Maat_command.cpp b/src/entry/Maat_command.cpp index 9e139a9..fb9f9c1 100644 --- a/src/entry/Maat_command.cpp +++ b/src/entry/Maat_command.cpp @@ -2054,7 +2054,7 @@ int Maat_cmd_set_file(Maat_feather_t feather,const char* key, const char* value, return -1;
}
freeReplyObject(reply);
- return 0;
+ return 1;
}
void Maat_add_region2cmd(struct Maat_cmd_t* cmd,int which_group,const struct Maat_region_t* region)
{
diff --git a/src/entry/Maat_rule.cpp b/src/entry/Maat_rule.cpp index 5f25c35..bbba76b 100644 --- a/src/entry/Maat_rule.cpp +++ b/src/entry/Maat_rule.cpp @@ -3009,6 +3009,8 @@ void garbage_bury(MESA_lqueue_head garbage_q,int timeout,void *logger) "Foreign content file %s remove failed.", bag->filename); } + free(bag->filename); + bag->filename=NULL; break; default: assert(0); diff --git a/test/test_maatframe.cpp b/test/test_maatframe.cpp index 70e9137..6edb1cd 100644 --- a/test/test_maatframe.cpp +++ b/test/test_maatframe.cpp @@ -664,8 +664,7 @@ protected: const char* foregin_dir="./foreign_files/"; Maat_set_feather_opt(_shared_feather, MAAT_OPT_FOREIGN_CONT_DIR,foregin_dir, strlen(foregin_dir)+1); - - int linger_timeout=4; + linger_timeout=2; Maat_set_feather_opt(_shared_feather, MAAT_OPT_FOREIGN_CONT_LINGER,&linger_timeout, sizeof(linger_timeout)); Maat_cmd_flushDB(_shared_feather); @@ -678,10 +677,11 @@ protected: } // Some expensive resource shared by all tests. - static Maat_feather_t _shared_feather; + static Maat_feather_t _shared_feather; + static int linger_timeout; }; Maat_feather_t MaatCmdTest::_shared_feather; - +int MaatCmdTest::linger_timeout; int test_add_expr_command(Maat_feather_t feather,const char* region_table,int config_id, int timeout,int label_id, const char* keywords) { struct Maat_cmd_t* cmd=NULL; @@ -1043,7 +1043,9 @@ int is_same_file(const char* filename1, const char* filename2) return 0; } } -int g_test_foregin_read_OK=0; +int g_test_foregin_read_OK=0, g_test_foreign_del_OK=0; +char file1_to_del[256], file2_to_del[256]; + void foreign_key_test_entry_cb(int table_id,const char* table_line,void* u_para) { int rule_id=-1, not_care=0, tag=0; @@ -1060,10 +1062,19 @@ void foreign_key_test_entry_cb(int table_id,const char* table_line,void* u_para) , file2_origin_name, file2_localname , end); EXPECT_STREQ(end, "End"); - EXPECT_TRUE(is_same_file(file1_origin_name, file1_localname)); - EXPECT_TRUE(is_same_file(file2_origin_name, file2_localname)); + if(is_valid==1) + { + EXPECT_TRUE(is_same_file(file1_origin_name, file1_localname)); + EXPECT_TRUE(is_same_file(file2_origin_name, file2_localname)); - g_test_foregin_read_OK=1; + g_test_foregin_read_OK=1; + } + else + { + strcpy(file1_to_del, file1_localname); + strcpy(file2_to_del, file2_localname); + g_test_foreign_del_OK=1; + } return; } @@ -1085,12 +1096,14 @@ TEST_F(MaatCmdTest, SetFile) size_t file_size=0; prepare_file_to_set(file1_name, &file_buff, &file_size, file1_key, sizeof(file1_key)); - Maat_cmd_set_file(feather, file1_key, file_buff, file_size, MAAT_OP_ADD); + ret=Maat_cmd_set_file(feather, file1_key, file_buff, file_size, MAAT_OP_ADD); + EXPECT_EQ(ret, 1); free(file_buff); file_buff=NULL; prepare_file_to_set(file2_name, &file_buff, &file_size, file2_key, sizeof(file2_key)); - Maat_cmd_set_file(feather, file2_key, file_buff, file_size, MAAT_OP_ADD); + ret=Maat_cmd_set_file(feather, file2_key, file_buff, file_size, MAAT_OP_ADD); + EXPECT_EQ(ret, 1); free(file_buff); file_buff=NULL; g_test_foregin_read_OK=0; @@ -1110,6 +1123,23 @@ TEST_F(MaatCmdTest, SetFile) EXPECT_EQ(ret, 1); usleep(WAIT_FOR_EFFECTIVE_US);//wait for callback triggered. EXPECT_EQ(g_test_foregin_read_OK, 1); + + g_test_foreign_del_OK=0; + ret=Maat_cmd_set_file(feather, file1_key, NULL, 0, MAAT_OP_DEL); + EXPECT_EQ(ret, 1); + ret=Maat_cmd_set_file(feather, file2_key, NULL, 0, MAAT_OP_DEL); + EXPECT_EQ(ret, 1); + + ret=Maat_cmd_set_line(feather, &line_rule, MAAT_OP_DEL); + EXPECT_EQ(ret, 1); + sleep(MaatCmdTest::linger_timeout+1); + + struct stat file_info; + ret=stat(file1_to_del, &file_info); + EXPECT_EQ(ret, -1); + ret=stat(file2_to_del, &file_info); + EXPECT_EQ(ret, -1); + return; } diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 5cb7cc2..8cb7a2f 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -4,8 +4,8 @@ target_link_libraries(digest_gen maat_frame_shared) add_executable(maat_redis_tool maat_redis_tool.cpp) add_dependencies(maat_redis_tool maat_frame_shared) -target_link_libraries(maat_redis_tool maat_frame_shared) +target_link_libraries(maat_redis_tool maat_frame_static ${MAAT_DEPEND_DYN_LIB}) target_include_directories(maat_redis_tool PRIVATE ${PROJECT_SOURCE_DIR}/src/inc_internal/) -target_include_directories(maat_redis_tool PRIVATE ${PROJECT_SOURCE_DIR}/src/inc_internal/hiredis) +target_include_directories(maat_redis_tool PRIVATE hiredis-vip-static) diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt index 2d8dc72..52db358 100644 --- a/vendor/CMakeLists.txt +++ b/vendor/CMakeLists.txt @@ -2,12 +2,12 @@ include(ExternalProject) #### GoogleTest -ExternalProject_Add(googletest PREFIX googletest +ExternalProject_Add(GoogleTest PREFIX GoogleTest URL ${CMAKE_CURRENT_SOURCE_DIR}/googletest-release-1.8.0.tar.gz URL_MD5 16877098823401d1bf2ed7891d7dce36 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) -ExternalProject_Get_Property(googletest INSTALL_DIR) +ExternalProject_Get_Property(GoogleTest INSTALL_DIR) file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(gtest STATIC IMPORTED GLOBAL) @@ -15,14 +15,18 @@ set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libgtest set_property(TARGET gtest PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) set_property(TARGET gtest PROPERTY INTERFACE_LINK_LIBRARIES pthread) -#### hiredis-vip -#ExternalProject_Add(hiredis-vip PREFIX hiredis-vip -# URL ${CMAKE_CURRENT_SOURCE_DIR}/hiredis-vip-0.3.0.tar.gz -# URL_MD5 e4d4a2928188b11f696d35ca1c52e9a4 -# CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) -# -#ExternalProject_Get_Property(hiredis-vip INSTALL_DIR) -#file(MAKE_DIRECTORY ${INSTALL_DIR}/include) -# -#add_library(hiredisv STATIC IMPORTED GLOBAL) -#set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/libhiredis_vip.a) +ExternalProject_Add(hiredis-vip PREFIX hiredis-vip + URL ${CMAKE_CURRENT_SOURCE_DIR}/hiredis-vip-0.3.0.tar.gz + URL_MD5 e4d4a2928188b11f696d35ca1c52e9a4 + CONFIGURE_COMMAND "" + BUILD_COMMAND make + INSTALL_COMMAND "" + BUILD_IN_SOURCE 1) + +ExternalProject_Get_Property(hiredis-vip SOURCE_DIR) +set(HTTP_PARSER_INCLUDE_DIRECTORIES ${SOURCE_DIR}) +file(MAKE_DIRECTORY ${HTTP_PARSER_INCLUDE_DIRECTORIES}) + +add_library(hiredis-vip-static STATIC IMPORTED GLOBAL) +set_property(TARGET hiredis-vip-static PROPERTY IMPORTED_LOCATION ${SOURCE_DIR}/libhiredis_vip.a) +set_property(TARGET hiredis-vip-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${SOURCE_DIR}) diff --git a/vendor/googletest-release-1.8.0.tar.gz b/vendor/googletest-release-1.8.0.tar.gz Binary files differnew file mode 100644 index 0000000..a40df33 --- /dev/null +++ b/vendor/googletest-release-1.8.0.tar.gz diff --git a/vendor/hiredis-vip-0.3.0.tar.gz b/vendor/hiredis-vip-0.3.0.tar.gz Binary files differnew file mode 100644 index 0000000..cf88a1b --- /dev/null +++ b/vendor/hiredis-vip-0.3.0.tar.gz |
