非逻辑运算单元测试通过。

This commit is contained in:
zhengchao
2019-01-07 18:24:02 +06:00
parent 7da54b10b0
commit 830032bca2
4 changed files with 53 additions and 9 deletions

View File

@@ -2468,7 +2468,8 @@ void update_group_rule(struct Maat_table_desc* table,const char* table_line,stru
&(db_group_rule.compile_id), &(db_group_rule.compile_id),
&(db_group_rule.is_valid), &(db_group_rule.is_valid),
&(db_group_rule.not_flag)); &(db_group_rule.not_flag));
if(ret!=3&&ret!=4) if((ret!=3&&ret!=4) ||
(db_group_rule.not_flag!=0&&db_group_rule.not_flag!=1))
{ {
MESA_handle_runtime_log(logger,RLOG_LV_INFO,maat_module , MESA_handle_runtime_log(logger,RLOG_LV_INFO,maat_module ,
"update error,invalid format of group table %s:%s", "update error,invalid format of group table %s:%s",

View File

@@ -8,7 +8,8 @@ enum MAAT_FS_STATUS{
STATUS_TABLE_NUM, STATUS_TABLE_NUM,
STATUS_PLUGIN_CACHE_NUM, STATUS_PLUGIN_CACHE_NUM,
STATUS_PLUGIN_ACC_NUM, STATUS_PLUGIN_ACC_NUM,
STATUS_GROUP_RULE_NUM, STATUS_GROUP_REF_NUM,
STATUS_GROUP_REF_NOT_NUM,
STATUS_COMPILE_RULE_NUM, STATUS_COMPILE_RULE_NUM,
STATUS_POSTPONE_QSIZE, STATUS_POSTPONE_QSIZE,
STATUS_OUTER_MID_NUM, STATUS_OUTER_MID_NUM,
@@ -61,7 +62,8 @@ void maat_stat_init(struct _Maat_feather_t* feather)
feather->fs_status_id[STATUS_PLUGIN_CACHE_NUM]=FS_register(feather->stat_handle, FS_STYLE_STATUS, FS_CALC_CURRENT,"plug_cache"); feather->fs_status_id[STATUS_PLUGIN_CACHE_NUM]=FS_register(feather->stat_handle, FS_STYLE_STATUS, FS_CALC_CURRENT,"plug_cache");
feather->fs_status_id[STATUS_PLUGIN_ACC_NUM]=FS_register(feather->stat_handle, FS_STYLE_STATUS, FS_CALC_CURRENT,"plug_acc"); feather->fs_status_id[STATUS_PLUGIN_ACC_NUM]=FS_register(feather->stat_handle, FS_STYLE_STATUS, FS_CALC_CURRENT,"plug_acc");
feather->fs_status_id[STATUS_GROUP_RULE_NUM]=FS_register(feather->stat_handle, FS_STYLE_STATUS, FS_CALC_CURRENT,"grp_num"); feather->fs_status_id[STATUS_GROUP_REF_NUM]=FS_register(feather->stat_handle, FS_STYLE_STATUS, FS_CALC_CURRENT,"grp_num");
feather->fs_status_id[STATUS_GROUP_REF_NOT_NUM]=FS_register(feather->stat_handle, FS_STYLE_STATUS, FS_CALC_CURRENT,"not_grp");
feather->fs_status_id[STATUS_COMPILE_RULE_NUM]=FS_register(feather->stat_handle, FS_STYLE_STATUS, FS_CALC_CURRENT,"compile_num"); feather->fs_status_id[STATUS_COMPILE_RULE_NUM]=FS_register(feather->stat_handle, FS_STYLE_STATUS, FS_CALC_CURRENT,"compile_num");
feather->fs_status_id[STATUS_POSTPONE_QSIZE]=FS_register(feather->stat_handle, FS_STYLE_STATUS, FS_CALC_CURRENT,"postponed"); feather->fs_status_id[STATUS_POSTPONE_QSIZE]=FS_register(feather->stat_handle, FS_STYLE_STATUS, FS_CALC_CURRENT,"postponed");
@@ -168,7 +170,7 @@ void maat_stat_output(struct _Maat_feather_t* feather)
long long outer_mid_cnt=0,inner_mid_cnt=0; long long outer_mid_cnt=0,inner_mid_cnt=0;
long long orphan_group_saving=0, last_region_saving=0; long long orphan_group_saving=0, last_region_saving=0;
long long total_update_error=0,total_iconv_error=0; long long total_update_error=0,total_iconv_error=0;
long long compile_rule_num=0,group_rule_num=0,plugin_cache_num=0,plugin_acc_num=0; long long compile_rule_num=0, group_rule_num=0, not_group_rule_num=0, plugin_cache_num=0, plugin_acc_num=0;
int i=0; int i=0;
time_t now; time_t now;
struct Maat_table_desc* p_table=NULL; struct Maat_table_desc* p_table=NULL;
@@ -221,6 +223,7 @@ void maat_stat_output(struct _Maat_feather_t* feather)
break; break;
case TABLE_TYPE_GROUP: case TABLE_TYPE_GROUP:
group_rule_num+=table_rt->origin_rule_num; group_rule_num+=table_rt->origin_rule_num;
not_group_rule_num+=table_rt->group.not_flag_group;
break; break;
case TABLE_TYPE_COMPILE: case TABLE_TYPE_COMPILE:
compile_rule_num+=table_rt->origin_rule_num; compile_rule_num+=table_rt->origin_rule_num;
@@ -357,7 +360,8 @@ void maat_stat_output(struct _Maat_feather_t* feather)
FS_operate(feather->stat_handle, feather->fs_status_id[STATUS_PLUGIN_CACHE_NUM], 0,FS_OP_SET,plugin_cache_num); FS_operate(feather->stat_handle, feather->fs_status_id[STATUS_PLUGIN_CACHE_NUM], 0,FS_OP_SET,plugin_cache_num);
FS_operate(feather->stat_handle, feather->fs_status_id[STATUS_PLUGIN_ACC_NUM], 0,FS_OP_SET,plugin_acc_num); FS_operate(feather->stat_handle, feather->fs_status_id[STATUS_PLUGIN_ACC_NUM], 0,FS_OP_SET,plugin_acc_num);
FS_operate(feather->stat_handle, feather->fs_status_id[STATUS_GROUP_RULE_NUM], 0,FS_OP_SET,group_rule_num); FS_operate(feather->stat_handle, feather->fs_status_id[STATUS_GROUP_REF_NUM], 0,FS_OP_SET,group_rule_num);
FS_operate(feather->stat_handle, feather->fs_status_id[STATUS_GROUP_REF_NOT_NUM], 0,FS_OP_SET,not_group_rule_num);
FS_operate(feather->stat_handle, feather->fs_status_id[STATUS_COMPILE_RULE_NUM], 0,FS_OP_SET,compile_rule_num); FS_operate(feather->stat_handle, feather->fs_status_id[STATUS_COMPILE_RULE_NUM], 0,FS_OP_SET,compile_rule_num);
FS_operate(feather->stat_handle, feather->fs_status_id[STATUS_POSTPONE_QSIZE], 0,FS_OP_SET,feather->postpone_q_size); FS_operate(feather->stat_handle, feather->fs_status_id[STATUS_POSTPONE_QSIZE], 0,FS_OP_SET,feather->postpone_q_size);

View File

@@ -770,7 +770,7 @@ int write_compile_rule(cJSON *compile,struct iris_description_t *p_iris,void * l
set_file_rulenum(table_info->table_path,table_info->line_count,logger); set_file_rulenum(table_info->table_path,table_info->line_count,logger);
return compile_id; return compile_id;
} }
int write_group_rule(int compile_id ,int group_id,struct iris_description_t *p_iris,void * logger) int write_group_rule(int compile_id ,int group_id, int group_not_flag, struct iris_description_t *p_iris,void * logger)
{ {
FILE*fp=NULL; FILE*fp=NULL;
int ret=0; int ret=0;
@@ -790,7 +790,7 @@ int write_group_rule(int compile_id ,int group_id,struct iris_description_t *p_i
"fopen %s error %s.",p_iris->group_table->table_path,strerror(errno)); "fopen %s error %s.",p_iris->group_table->table_path,strerror(errno));
return -1; return -1;
} }
fprintf(fp,"%d\t%d\t1\n",group_id,compile_id); fprintf(fp,"%d\t%d\t1\t%d\n",group_id, compile_id, group_not_flag);
fclose(fp); fclose(fp);
p_iris->group_table->line_count++; p_iris->group_table->line_count++;
ret=set_file_rulenum(p_iris->group_table->table_path,p_iris->group_table->line_count,logger); ret=set_file_rulenum(p_iris->group_table->table_path,p_iris->group_table->line_count,logger);
@@ -821,6 +821,7 @@ int write_iris(cJSON *json,struct iris_description_t *p_iris,void* logger)
int i=0,j=0,k=0; int i=0,j=0,k=0;
int compile_id=-1,compile_cnt=0,group_cnt=0,region_cnt=0,plug_table_cnt=0; int compile_id=-1,compile_cnt=0,group_cnt=0,region_cnt=0,plug_table_cnt=0;
int ret=0; int ret=0;
int group_not_flag=0;
cJSON *c_rules=NULL,*g_rules=NULL,*r_rules=NULL,*item=NULL,*plug_tables=NULL; cJSON *c_rules=NULL,*g_rules=NULL,*r_rules=NULL,*item=NULL,*plug_tables=NULL;
cJSON *compile_rule=NULL,*group_rule=NULL,*region_rule=NULL,*each_plug_table=NULL; cJSON *compile_rule=NULL,*group_rule=NULL,*region_rule=NULL,*each_plug_table=NULL;
const char* group_name=NULL; const char* group_name=NULL;
@@ -878,6 +879,15 @@ int write_iris(cJSON *json,struct iris_description_t *p_iris,void* logger)
for(j=0;j<group_cnt;j++) for(j=0;j<group_cnt;j++)
{ {
group_rule=cJSON_GetArrayItem(g_rules,j); group_rule=cJSON_GetArrayItem(g_rules,j);
item=cJSON_GetObjectItem(group_rule,"not_flag");
if(item==NULL||item->type!=cJSON_Number)
{
group_not_flag=0;
}
else
{
group_not_flag=item->valueint;
}
item=cJSON_GetObjectItem(group_rule,"group_name"); item=cJSON_GetObjectItem(group_rule,"group_name");
if(item==NULL||item->type!=cJSON_String) if(item==NULL||item->type!=cJSON_String)
{ {
@@ -890,7 +900,7 @@ int write_iris(cJSON *json,struct iris_description_t *p_iris,void* logger)
group_info=(struct group_info_t*)MESA_htable_search(p_iris->group_name_map, (const unsigned char*)group_name, strlen(group_name)); group_info=(struct group_info_t*)MESA_htable_search(p_iris->group_name_map, (const unsigned char*)group_name, strlen(group_name));
if(group_info!=NULL)//exist group name ,region already read if(group_info!=NULL)//exist group name ,region already read
{ {
ret=write_group_rule(compile_id, group_info->group_id, p_iris, logger); ret=write_group_rule(compile_id, group_info->group_id, group_not_flag, p_iris, logger);
if(ret<0) if(ret<0)
{ {
MESA_handle_runtime_log(logger,RLOG_LV_FATAL,maat_json, MESA_handle_runtime_log(logger,RLOG_LV_FATAL,maat_json,
@@ -942,7 +952,7 @@ int write_iris(cJSON *json,struct iris_description_t *p_iris,void* logger)
return -1; return -1;
} }
} }
ret=write_group_rule(compile_id, group_info->group_id, p_iris, logger); ret=write_group_rule(compile_id, group_info->group_id, group_not_flag, p_iris, logger);
if(ret<0) if(ret<0)
{ {
MESA_handle_runtime_log(logger,RLOG_LV_FATAL,maat_json, MESA_handle_runtime_log(logger,RLOG_LV_FATAL,maat_json,

View File

@@ -289,6 +289,35 @@ TEST(IPScan, IPv6)
Maat_clean_status(&mid); Maat_clean_status(&mid);
return; return;
} }
TEST(Boolmatcher, NotFlagGroup)
{
const char* string_should_hit="This string ONLY contains must-contained-string-11111.";
const char* string_should_not_hit="This string contains both must-contained-string-11111 and must-not-contained-string-22222.";
int ret=0;
int table_id=0;
struct Maat_rule_t result[4];
int found_pos[4];
const char* table_name="HTTP_URL";
scan_status_t mid=NULL;
table_id=Maat_table_register(g_feather,table_name);
ASSERT_GT(table_id, 0);
ret=Maat_full_scan_string(g_feather, table_id,CHARSET_GBK, string_should_hit, strlen(string_should_hit),
result,found_pos, 4, &mid, 0);
EXPECT_GE(ret, 1);
Maat_clean_status(&mid);
ret=Maat_full_scan_string(g_feather, table_id,CHARSET_GBK, string_should_not_hit, strlen(string_should_not_hit),
result,found_pos, 4, &mid, 0);
EXPECT_EQ(ret, -2);
Maat_clean_status(&mid);
}
TEST(Helper, ReadColumn) TEST(Helper, ReadColumn)
{ {
const char* ip="192.168.0.1"; const char* ip="192.168.0.1";