export maat_get_table_id symbol
This commit is contained in:
@@ -234,7 +234,7 @@ int system_cmd_rmdir(const char *dir)
|
|||||||
{
|
{
|
||||||
char cmd[MAX_SYSTEM_CMD_LEN] = { 0 };
|
char cmd[MAX_SYSTEM_CMD_LEN] = { 0 };
|
||||||
snprintf(cmd,sizeof(cmd), "rm %s -rf", dir);
|
snprintf(cmd,sizeof(cmd), "rm %s -rf", dir);
|
||||||
return system(cmd);
|
return system(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *md5_file(const char *filename, char *md5string)
|
char *md5_file(const char *filename, char *md5string)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ global:
|
|||||||
maat_options*;
|
maat_options*;
|
||||||
maat_new;
|
maat_new;
|
||||||
maat_free;
|
maat_free;
|
||||||
|
maat_get_table_id;
|
||||||
maat_table*;
|
maat_table*;
|
||||||
maat_compile_table*;
|
maat_compile_table*;
|
||||||
maat_plugin_table*;
|
maat_plugin_table*;
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ const char *table_info_path = "./table_info.conf";
|
|||||||
const char *json_path="./maat_json.json";
|
const char *json_path="./maat_json.json";
|
||||||
const char *json_filename = "maat_json.json";
|
const char *json_filename = "maat_json.json";
|
||||||
struct maat *g_maat_instance = NULL;
|
struct maat *g_maat_instance = NULL;
|
||||||
|
struct log_handle *g_logger = NULL;
|
||||||
|
size_t g_thread_num = 4;
|
||||||
|
|
||||||
extern int system_cmd_rmdir(const char *dir);
|
extern int system_cmd_rmdir(const char *dir);
|
||||||
|
|
||||||
@@ -1494,6 +1496,22 @@ TEST_F(Policy, SubGroup) {
|
|||||||
maat_state_free(&state);
|
maat_state_free(&state);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
TEST_F(Policy, ReadColumn) {
|
||||||
|
const char *ip = "192.168.0.1";
|
||||||
|
const char *tmp = "something";
|
||||||
|
char line[256] = {0};
|
||||||
|
size_t offset=0, len=0;
|
||||||
|
|
||||||
|
snprintf(line, sizeof(line), "1\t%s\t%s", ip, tmp);
|
||||||
|
int ret = maat_helper_read_column(line, 2, &offset, &len);
|
||||||
|
EXPECT_EQ(ret, 0);
|
||||||
|
EXPECT_EQ(0, strncmp(ip, line+offset, len));
|
||||||
|
|
||||||
|
ret = maat_helper_read_column(line, 3, &offset, &len);
|
||||||
|
EXPECT_EQ(ret, 0);
|
||||||
|
EXPECT_EQ(0, strncmp(tmp, line+offset, len));
|
||||||
|
}
|
||||||
|
|
||||||
class MaatCmdTest : public testing::Test
|
class MaatCmdTest : public testing::Test
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
@@ -1505,7 +1523,97 @@ protected:
|
|||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
#if 0
|
||||||
|
TEST_F(MaatCmdTest, SetIP) {
|
||||||
|
long long version_before = 0;
|
||||||
|
const char *ip_table_name = "IP_CONFIG";
|
||||||
|
const char *compile_table_name = "COMPILE";
|
||||||
|
char table_line[128] = {0};
|
||||||
|
long long compile_id = 0;
|
||||||
|
|
||||||
|
compile_id = maat_cmd_incrby(g_maat_instance, "TEST_SEQ", 1);
|
||||||
|
sprintf(table_line, "%lld\t")
|
||||||
|
struct maat_cmd_line line_rule;
|
||||||
|
line_rule.table_name = compile_table_name;
|
||||||
|
|
||||||
|
|
||||||
|
strcpy(compile.service_defined, "maat_command");
|
||||||
|
struct Maat_command_batch* batch=NULL;
|
||||||
|
batch=Maat_command_batch_new(feather);
|
||||||
|
//MUST acqire by function, because Maat_cmd_t has some hidden members.
|
||||||
|
Maat_command_batch_set_compile(batch, MAAT_OP_ADD, &compile, "COMPILE", NULL, 1, 0, timeout);
|
||||||
|
|
||||||
|
struct Maat_cmd_group2compile g2c;
|
||||||
|
memset(&g2c, 0, sizeof(g2c));
|
||||||
|
g2c.group_id=Maat_command_get_new_group_id(feather);
|
||||||
|
g2c.compile_id=compile.config_id;
|
||||||
|
g2c.clause_index=1;
|
||||||
|
g2c.table_name="GROUP2COMPILE";
|
||||||
|
Maat_command_batch_set_group2compile(batch, MAAT_OP_ADD, &g2c);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
struct Maat_cmd_region region;
|
||||||
|
memset(®ion, 0, sizeof(region));
|
||||||
|
region.region_type=REGION_IP;
|
||||||
|
region.table_name=region_table;
|
||||||
|
region.ip_rule.addr_type=ADDR_TYPE_IPv4;
|
||||||
|
region.ip_rule.direction=ADDR_DIR_DOUBLE;
|
||||||
|
region.ip_rule.src_ip="172.0.0.1";
|
||||||
|
region.ip_rule.mask_src_ip="255.255.255.255";
|
||||||
|
region.ip_rule.src_port=53331;
|
||||||
|
region.ip_rule.mask_src_port=0;//means any port should hit.
|
||||||
|
|
||||||
|
region.ip_rule.dst_ip="172.0.0.2";
|
||||||
|
region.ip_rule.mask_dst_ip="255.255.255.255";
|
||||||
|
region.ip_rule.dst_port=80;
|
||||||
|
region.ip_rule.mask_dst_port=65535;
|
||||||
|
region.ip_rule.protocol=0;//means any protocol should hit.
|
||||||
|
ret=Maat_command_batch_set_region(batch, MAAT_OP_ADD, ®ion, g2c.group_id);
|
||||||
|
EXPECT_GE(ret, 0);
|
||||||
|
|
||||||
|
|
||||||
|
ret=Maat_read_state(feather,MAAT_STATE_VERSION, &version_before, sizeof(version_before));
|
||||||
|
EXPECT_EQ(ret, 0);
|
||||||
|
Maat_command_batch_commit(batch);
|
||||||
|
|
||||||
|
wait_for_cmd_effective(feather, version_before);
|
||||||
|
|
||||||
|
struct ipaddr ipv4_addr;
|
||||||
|
struct stream_tuple4_v4 v4_addr;
|
||||||
|
ipv4_addr.addrtype=ADDR_TYPE_IPV4;
|
||||||
|
inet_pton(AF_INET,region.ip_rule.src_ip,&(v4_addr.saddr));
|
||||||
|
v4_addr.source=htons(region.ip_rule.src_port+1);//Not use the exactly port for testing port mask.
|
||||||
|
inet_pton(AF_INET,region.ip_rule.dst_ip,&(v4_addr.daddr));
|
||||||
|
v4_addr.dest=htons(region.ip_rule.dst_port);
|
||||||
|
ipv4_addr.v4=&v4_addr;
|
||||||
|
|
||||||
|
int table_id=0;
|
||||||
|
struct Maat_rule_t result;
|
||||||
|
memset(&result, 0, sizeof(result));
|
||||||
|
scan_status_t mid=NULL;
|
||||||
|
table_id=Maat_table_register(feather,region_table);
|
||||||
|
ASSERT_GE(table_id, 0);
|
||||||
|
|
||||||
|
ret=Maat_scan_proto_addr(feather,table_id,&ipv4_addr,6,&result,1, &mid,0);
|
||||||
|
EXPECT_EQ(ret, 1);
|
||||||
|
EXPECT_EQ(result.config_id, config_id);
|
||||||
|
|
||||||
|
Maat_clean_status(&mid);
|
||||||
|
|
||||||
|
ret=Maat_read_state(feather,MAAT_STATE_VERSION, &version_before, sizeof(version_before));
|
||||||
|
|
||||||
|
Maat_command_raw_set_compile(feather, MAAT_OP_RENEW_TIMEOUT, &compile, "COMPILE", NULL, 1, 0, timeout);
|
||||||
|
|
||||||
|
sleep(timeout-1);
|
||||||
|
ret=Maat_scan_proto_addr(feather,table_id,&ipv4_addr,6,&result,1, &mid,0);
|
||||||
|
EXPECT_EQ(ret, 1);
|
||||||
|
|
||||||
|
Maat_clean_status(&mid);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
struct user_info {
|
struct user_info {
|
||||||
char name[256];
|
char name[256];
|
||||||
char ip_addr[32];
|
char ip_addr[32];
|
||||||
@@ -1742,8 +1850,8 @@ int main(int argc, char ** argv)
|
|||||||
int ret=0;
|
int ret=0;
|
||||||
::testing::InitGoogleTest(&argc, argv);
|
::testing::InitGoogleTest(&argc, argv);
|
||||||
|
|
||||||
struct log_handle *logger = log_handle_create("./maat_framework_gtest.log", 0);
|
g_logger = log_handle_create("./maat_framework_gtest.log", 0);
|
||||||
if (NULL == logger) {
|
if (NULL == g_logger) {
|
||||||
printf("create log handle failed.\n");
|
printf("create log handle failed.\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -1753,30 +1861,32 @@ int main(int argc, char ** argv)
|
|||||||
int redis_port = 6379;
|
int redis_port = 6379;
|
||||||
int redis_db = 0;
|
int redis_db = 0;
|
||||||
|
|
||||||
ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
|
ret = write_config_to_redis(redis_ip, redis_port, redis_db, g_logger);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
log_error(logger, MODULE_FRAMEWORK_GTEST, "write config to redis failed.");
|
log_error(g_logger, MODULE_FRAMEWORK_GTEST, "write config to redis failed.");
|
||||||
log_handle_destroy(logger);
|
log_handle_destroy(g_logger);
|
||||||
|
g_logger = NULL;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct maat_options *opts = maat_options_new();
|
struct maat_options *opts = maat_options_new();
|
||||||
maat_options_set_redis(opts, redis_ip, redis_port, redis_db);
|
maat_options_set_redis(opts, redis_ip, redis_port, redis_db);
|
||||||
maat_options_set_logger(opts, logger);
|
maat_options_set_logger(opts, g_logger);
|
||||||
maat_options_set_accept_tags(opts, accept_tags);
|
maat_options_set_accept_tags(opts, accept_tags);
|
||||||
|
|
||||||
g_maat_instance = maat_new(opts, table_info_path);
|
g_maat_instance = maat_new(opts, table_info_path);
|
||||||
maat_options_free(opts);
|
maat_options_free(opts);
|
||||||
if (NULL == g_maat_instance) {
|
if (NULL == g_maat_instance) {
|
||||||
log_error(logger, MODULE_FRAMEWORK_GTEST, "create maat instance in MaatStringScan failed.");
|
log_error(g_logger, MODULE_FRAMEWORK_GTEST, "create maat instance in MaatStringScan failed.");
|
||||||
log_handle_destroy(logger);
|
log_handle_destroy(g_logger);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret=RUN_ALL_TESTS();
|
ret=RUN_ALL_TESTS();
|
||||||
|
|
||||||
maat_free(g_maat_instance);
|
maat_free(g_maat_instance);
|
||||||
log_handle_destroy(logger);
|
log_handle_destroy(g_logger);
|
||||||
|
g_logger = NULL;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user