1)hiredis-vip静态链接到maat;2)maat_redis_tool静态链接libmaatframe.a;3)增加文件删除的测试用例。
This commit is contained in:
51
.gitignore
vendored
51
.gitignore
vendored
@@ -1,9 +1,44 @@
|
|||||||
SI/
|
# Created by https://www.gitignore.io/api/c++,clion
|
||||||
*.I*
|
|
||||||
*.P*
|
### C++ ###
|
||||||
*.S*
|
# Prerequisites
|
||||||
*.W*
|
*.d
|
||||||
*.[od]
|
|
||||||
*.[1-9]*
|
# Compiled Object files
|
||||||
*.log
|
*.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
|
*.a
|
||||||
|
*.lib
|
||||||
|
|
||||||
|
# Executables
|
||||||
|
*.exe
|
||||||
|
*.out
|
||||||
|
*.app
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
cmake-build-*/
|
||||||
|
|
||||||
|
# Clion
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# Vscode
|
||||||
|
.vscode/*
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
cmake_minimum_required (VERSION 3.5)
|
cmake_minimum_required (VERSION 3.5)
|
||||||
project (maatframe)
|
project (maatframe)
|
||||||
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wall)
|
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(${PROJECT_SOURCE_DIR}/inc/)
|
||||||
include_directories(/opt/MESA/include/MESA/)
|
include_directories(/opt/MESA/include/MESA/)
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.5)
|
|||||||
project(maatframe)
|
project(maatframe)
|
||||||
|
|
||||||
set(MAAT_FRAME_MAJOR_VERSION 2)
|
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_PATCH_VERSION 20180926)
|
||||||
set(MAAT_FRAME_VERSION ${MAAT_FRAME_MAJOR_VERSION}.${MAAT_FRAME_MINOR_VERSION}.${MAAT_FRAME_PATCH_VERSION})
|
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 OUTPUT_NAME maatframe)
|
||||||
set_target_properties(maat_frame_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
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/)
|
||||||
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
|
# Shared Library Output
|
||||||
add_library(maat_frame_shared SHARED ${MAAT_SRC})
|
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})
|
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/)
|
||||||
target_include_directories(maat_frame_shared PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/inc_internal/hiredis)
|
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(DIRECTORY ${PROJECT_SOURCE_DIR}/inc/ DESTINATION /opt/MESA/include/MESA/ FILES_MATCHING PATTERN "*.h")
|
||||||
install(TARGETS maat_frame_shared DESTINATION /opt/MESA/lib/)
|
install(TARGETS maat_frame_shared DESTINATION /opt/MESA/lib/)
|
||||||
|
|||||||
@@ -2054,7 +2054,7 @@ int Maat_cmd_set_file(Maat_feather_t feather,const char* key, const char* value,
|
|||||||
reply=NULL;
|
reply=NULL;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
freeReplyObject(reply);
|
freeReplyObject(reply);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
void Maat_add_region2cmd(struct Maat_cmd_t* cmd,int which_group,const struct Maat_region_t* region)
|
void Maat_add_region2cmd(struct Maat_cmd_t* cmd,int which_group,const struct Maat_region_t* region)
|
||||||
|
|||||||
@@ -3009,6 +3009,8 @@ void garbage_bury(MESA_lqueue_head garbage_q,int timeout,void *logger)
|
|||||||
"Foreign content file %s remove failed.",
|
"Foreign content file %s remove failed.",
|
||||||
bag->filename);
|
bag->filename);
|
||||||
}
|
}
|
||||||
|
free(bag->filename);
|
||||||
|
bag->filename=NULL;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
|
|||||||
@@ -664,8 +664,7 @@ protected:
|
|||||||
|
|
||||||
const char* foregin_dir="./foreign_files/";
|
const char* foregin_dir="./foreign_files/";
|
||||||
Maat_set_feather_opt(_shared_feather, MAAT_OPT_FOREIGN_CONT_DIR,foregin_dir, strlen(foregin_dir)+1);
|
Maat_set_feather_opt(_shared_feather, MAAT_OPT_FOREIGN_CONT_DIR,foregin_dir, strlen(foregin_dir)+1);
|
||||||
|
linger_timeout=2;
|
||||||
int linger_timeout=4;
|
|
||||||
Maat_set_feather_opt(_shared_feather, MAAT_OPT_FOREIGN_CONT_LINGER,&linger_timeout, sizeof(linger_timeout));
|
Maat_set_feather_opt(_shared_feather, MAAT_OPT_FOREIGN_CONT_LINGER,&linger_timeout, sizeof(linger_timeout));
|
||||||
|
|
||||||
Maat_cmd_flushDB(_shared_feather);
|
Maat_cmd_flushDB(_shared_feather);
|
||||||
@@ -679,9 +678,10 @@ protected:
|
|||||||
}
|
}
|
||||||
// Some expensive resource shared by all tests.
|
// 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;
|
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)
|
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;
|
struct Maat_cmd_t* cmd=NULL;
|
||||||
@@ -1043,7 +1043,9 @@ int is_same_file(const char* filename1, const char* filename2)
|
|||||||
return 0;
|
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)
|
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;
|
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
|
, file2_origin_name, file2_localname
|
||||||
, end);
|
, end);
|
||||||
EXPECT_STREQ(end, "End");
|
EXPECT_STREQ(end, "End");
|
||||||
EXPECT_TRUE(is_same_file(file1_origin_name, file1_localname));
|
if(is_valid==1)
|
||||||
EXPECT_TRUE(is_same_file(file2_origin_name, file2_localname));
|
{
|
||||||
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1085,12 +1096,14 @@ TEST_F(MaatCmdTest, SetFile)
|
|||||||
size_t file_size=0;
|
size_t file_size=0;
|
||||||
|
|
||||||
prepare_file_to_set(file1_name, &file_buff, &file_size, file1_key, sizeof(file1_key));
|
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);
|
free(file_buff);
|
||||||
file_buff=NULL;
|
file_buff=NULL;
|
||||||
|
|
||||||
prepare_file_to_set(file2_name, &file_buff, &file_size, file2_key, sizeof(file2_key));
|
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);
|
free(file_buff);
|
||||||
file_buff=NULL;
|
file_buff=NULL;
|
||||||
g_test_foregin_read_OK=0;
|
g_test_foregin_read_OK=0;
|
||||||
@@ -1110,6 +1123,23 @@ TEST_F(MaatCmdTest, SetFile)
|
|||||||
EXPECT_EQ(ret, 1);
|
EXPECT_EQ(ret, 1);
|
||||||
usleep(WAIT_FOR_EFFECTIVE_US);//wait for callback triggered.
|
usleep(WAIT_FOR_EFFECTIVE_US);//wait for callback triggered.
|
||||||
EXPECT_EQ(g_test_foregin_read_OK, 1);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ target_link_libraries(digest_gen maat_frame_shared)
|
|||||||
|
|
||||||
add_executable(maat_redis_tool maat_redis_tool.cpp)
|
add_executable(maat_redis_tool maat_redis_tool.cpp)
|
||||||
add_dependencies(maat_redis_tool maat_frame_shared)
|
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/)
|
||||||
target_include_directories(maat_redis_tool PRIVATE ${PROJECT_SOURCE_DIR}/src/inc_internal/hiredis)
|
target_include_directories(maat_redis_tool PRIVATE hiredis-vip-static)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
30
vendor/CMakeLists.txt
vendored
30
vendor/CMakeLists.txt
vendored
@@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
#### GoogleTest
|
#### GoogleTest
|
||||||
ExternalProject_Add(googletest PREFIX googletest
|
ExternalProject_Add(GoogleTest PREFIX GoogleTest
|
||||||
URL ${CMAKE_CURRENT_SOURCE_DIR}/googletest-release-1.8.0.tar.gz
|
URL ${CMAKE_CURRENT_SOURCE_DIR}/googletest-release-1.8.0.tar.gz
|
||||||
URL_MD5 16877098823401d1bf2ed7891d7dce36
|
URL_MD5 16877098823401d1bf2ed7891d7dce36
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
|
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)
|
file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
|
||||||
|
|
||||||
add_library(gtest STATIC IMPORTED GLOBAL)
|
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_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
|
||||||
set_property(TARGET gtest PROPERTY INTERFACE_LINK_LIBRARIES pthread)
|
set_property(TARGET gtest PROPERTY INTERFACE_LINK_LIBRARIES pthread)
|
||||||
|
|
||||||
#### hiredis-vip
|
ExternalProject_Add(hiredis-vip PREFIX hiredis-vip
|
||||||
#ExternalProject_Add(hiredis-vip PREFIX hiredis-vip
|
URL ${CMAKE_CURRENT_SOURCE_DIR}/hiredis-vip-0.3.0.tar.gz
|
||||||
# URL ${CMAKE_CURRENT_SOURCE_DIR}/hiredis-vip-0.3.0.tar.gz
|
URL_MD5 e4d4a2928188b11f696d35ca1c52e9a4
|
||||||
# URL_MD5 e4d4a2928188b11f696d35ca1c52e9a4
|
CONFIGURE_COMMAND ""
|
||||||
# CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
|
BUILD_COMMAND make
|
||||||
#
|
INSTALL_COMMAND ""
|
||||||
#ExternalProject_Get_Property(hiredis-vip INSTALL_DIR)
|
BUILD_IN_SOURCE 1)
|
||||||
#file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
|
|
||||||
#
|
ExternalProject_Get_Property(hiredis-vip SOURCE_DIR)
|
||||||
#add_library(hiredisv STATIC IMPORTED GLOBAL)
|
set(HTTP_PARSER_INCLUDE_DIRECTORIES ${SOURCE_DIR})
|
||||||
#set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/libhiredis_vip.a)
|
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})
|
||||||
|
|||||||
BIN
vendor/googletest-release-1.8.0.tar.gz
vendored
Normal file
BIN
vendor/googletest-release-1.8.0.tar.gz
vendored
Normal file
Binary file not shown.
BIN
vendor/hiredis-vip-0.3.0.tar.gz
vendored
Normal file
BIN
vendor/hiredis-vip-0.3.0.tar.gz
vendored
Normal file
Binary file not shown.
Reference in New Issue
Block a user