[PATCH] merge super_group's include and exclude sub_groups into one line
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
|
||||
#define MODULE_GROUP_EXCLUDE_GTEST module_name_str("maat.group_exclude_gtest")
|
||||
|
||||
#define MAX_IDS_STR_LEN 64
|
||||
#define MAX_ITEM_NUM 64
|
||||
#define WAIT_FOR_EFFECTIVE_S 2
|
||||
#define MAX_G2G_SCAN_TIMES (1000 * 1000)
|
||||
@@ -18,9 +19,9 @@ const char *table_info_path = "./group_exclude_table_info.conf";
|
||||
const char *log_file = "./group_exclude_gtest.log";
|
||||
|
||||
struct group_item {
|
||||
long long group_id;
|
||||
char incl_ids_str[MAX_IDS_STR_LEN];
|
||||
char excl_ids_str[MAX_IDS_STR_LEN];
|
||||
long long super_group_id;
|
||||
int is_exclude;
|
||||
};
|
||||
|
||||
struct group2group_rule {
|
||||
@@ -30,6 +31,8 @@ struct group2group_rule {
|
||||
struct group_item del_items[MAX_ITEM_NUM];
|
||||
};
|
||||
|
||||
UT_icd ut_ex_group_id_icd = {sizeof(long long), NULL, NULL, NULL};
|
||||
|
||||
static int parse_config_file(const char *filename, struct group2group_rule *rules)
|
||||
{
|
||||
unsigned char *json_buff = NULL;
|
||||
@@ -60,9 +63,10 @@ static int parse_config_file(const char *filename, struct group2group_rule *rule
|
||||
rule_cnt = cJSON_GetArraySize(items_array);
|
||||
for (size_t i = 0; i < rule_cnt; i++) {
|
||||
cJSON *item_obj = cJSON_GetArrayItem(items_array, i);
|
||||
cJSON *tmp_item = cJSON_GetObjectItem(item_obj, "group_id");
|
||||
if (tmp_item != NULL && tmp_item->type == cJSON_Number) {
|
||||
rules->add_items[i].group_id = tmp_item->valueint;
|
||||
cJSON *tmp_item = cJSON_GetObjectItem(item_obj, "incl_group_ids");
|
||||
if (tmp_item != NULL && tmp_item->type == cJSON_String) {
|
||||
memcpy(rules->add_items[i].incl_ids_str, tmp_item->valuestring,
|
||||
strlen(tmp_item->valuestring));
|
||||
}
|
||||
|
||||
tmp_item = cJSON_GetObjectItem(item_obj, "super_group_id");
|
||||
@@ -70,9 +74,10 @@ static int parse_config_file(const char *filename, struct group2group_rule *rule
|
||||
rules->add_items[i].super_group_id = tmp_item->valueint;
|
||||
}
|
||||
|
||||
tmp_item = cJSON_GetObjectItem(item_obj, "is_exclude");
|
||||
if (tmp_item != NULL && tmp_item->type == cJSON_Number) {
|
||||
rules->add_items[i].is_exclude = tmp_item->valueint;
|
||||
tmp_item = cJSON_GetObjectItem(item_obj, "excl_group_ids");
|
||||
if (tmp_item != NULL && tmp_item->type == cJSON_String) {
|
||||
memcpy(rules->add_items[i].excl_ids_str, tmp_item->valuestring,
|
||||
strlen(tmp_item->valuestring));
|
||||
}
|
||||
}
|
||||
rules->n_add_item = rule_cnt;
|
||||
@@ -87,9 +92,10 @@ static int parse_config_file(const char *filename, struct group2group_rule *rule
|
||||
rule_cnt = cJSON_GetArraySize(items_array);
|
||||
for (size_t i = 0; i < rule_cnt; i++) {
|
||||
cJSON *item_obj = cJSON_GetArrayItem(items_array, i);
|
||||
cJSON *tmp_item = cJSON_GetObjectItem(item_obj, "group_id");
|
||||
if (tmp_item != NULL && tmp_item->type == cJSON_Number) {
|
||||
rules->del_items[i].group_id = tmp_item->valueint;
|
||||
cJSON *tmp_item = cJSON_GetObjectItem(item_obj, "incl_group_ids");
|
||||
if (tmp_item != NULL && tmp_item->type == cJSON_String) {
|
||||
memcpy(rules->del_items[i].incl_ids_str, tmp_item->valuestring,
|
||||
strlen(tmp_item->valuestring));
|
||||
}
|
||||
|
||||
tmp_item = cJSON_GetObjectItem(item_obj, "super_group_id");
|
||||
@@ -97,9 +103,10 @@ static int parse_config_file(const char *filename, struct group2group_rule *rule
|
||||
rules->del_items[i].super_group_id = tmp_item->valueint;
|
||||
}
|
||||
|
||||
tmp_item = cJSON_GetObjectItem(item_obj, "is_exclude");
|
||||
if (tmp_item != NULL && tmp_item->type == cJSON_Number) {
|
||||
rules->del_items[i].is_exclude = tmp_item->valueint;
|
||||
tmp_item = cJSON_GetObjectItem(item_obj, "excl_group_ids");
|
||||
if (tmp_item != NULL && tmp_item->type == cJSON_String) {
|
||||
memcpy(rules->del_items[i].excl_ids_str, tmp_item->valuestring,
|
||||
strlen(tmp_item->valuestring));
|
||||
}
|
||||
}
|
||||
rules->n_del_item = rule_cnt;
|
||||
@@ -168,14 +175,15 @@ TEST_F(MaatGroupExclude, level_3_function) {
|
||||
assert(0);
|
||||
}
|
||||
|
||||
memset(&rules, 0, sizeof(rules));
|
||||
int ret = parse_config_file("group_exclude_L3.conf", &rules);
|
||||
EXPECT_EQ(ret, 0);
|
||||
|
||||
for (size_t i = 0; i < rules.n_add_item; i++) {
|
||||
memset(table_line, 0, sizeof(table_line));
|
||||
|
||||
sprintf(table_line, "%lld\t%lld\t%d\t%d", rules.add_items[i].group_id,
|
||||
rules.add_items[i].super_group_id, rules.add_items[i].is_exclude, 1);
|
||||
sprintf(table_line, "%s\t%lld\t%s\t%d", rules.add_items[i].incl_ids_str,
|
||||
rules.add_items[i].super_group_id, rules.add_items[i].excl_ids_str, 1);
|
||||
group2group_runtime_update(g2g_runtime, g2g_schema, table_name, table_line, 4);
|
||||
}
|
||||
|
||||
@@ -191,8 +199,8 @@ TEST_F(MaatGroupExclude, level_3_function) {
|
||||
|
||||
//delete group_id = 7, super_group_id = 6, is_exclude = 1
|
||||
memset(table_line, 0, sizeof(table_line));
|
||||
sprintf(table_line, "%lld\t%lld\t%d\t%d", rules.del_items[0].group_id,
|
||||
rules.del_items[0].super_group_id, rules.del_items[0].is_exclude, 0);
|
||||
sprintf(table_line, "%s\t%lld\t%s\t%d", rules.del_items[0].incl_ids_str,
|
||||
rules.del_items[0].super_group_id, rules.del_items[0].excl_ids_str, 0);
|
||||
group2group_runtime_update(g2g_runtime, g2g_schema, table_name, table_line, 4);
|
||||
group2group_runtime_commit(g2g_runtime, table_name, 2);
|
||||
|
||||
@@ -205,8 +213,8 @@ TEST_F(MaatGroupExclude, level_3_function) {
|
||||
|
||||
//delete group_id = 13, super_group_id = 4, is_exclude = 1
|
||||
memset(table_line, 0, sizeof(table_line));
|
||||
sprintf(table_line, "%lld\t%lld\t%d\t%d", rules.del_items[1].group_id,
|
||||
rules.del_items[1].super_group_id, rules.del_items[1].is_exclude, 0);
|
||||
sprintf(table_line, "%s\t%lld\t%s\t%d", rules.del_items[1].incl_ids_str,
|
||||
rules.del_items[1].super_group_id, rules.del_items[1].excl_ids_str, 0);
|
||||
group2group_runtime_update(g2g_runtime, g2g_schema, table_name, table_line, 4);
|
||||
group2group_runtime_commit(g2g_runtime, table_name, 3);
|
||||
|
||||
@@ -232,14 +240,15 @@ TEST_F(MaatGroupExclude, level_3_perf) {
|
||||
assert(0);
|
||||
}
|
||||
|
||||
memset(&rules, 0, sizeof(rules));
|
||||
int ret = parse_config_file("group_exclude_L3.conf", &rules);
|
||||
EXPECT_EQ(ret, 0);
|
||||
|
||||
for (size_t i = 0; i < rules.n_add_item; i++) {
|
||||
memset(table_line, 0, sizeof(table_line));
|
||||
|
||||
sprintf(table_line, "%lld\t%lld\t%d\t%d", rules.add_items[i].group_id,
|
||||
rules.add_items[i].super_group_id, rules.add_items[i].is_exclude, 1);
|
||||
sprintf(table_line, "%s\t%lld\t%s\t%d", rules.add_items[i].incl_ids_str,
|
||||
rules.add_items[i].super_group_id, rules.add_items[i].excl_ids_str, 1);
|
||||
group2group_runtime_update(g2g_runtime, g2g_schema, table_name, table_line, 4);
|
||||
}
|
||||
|
||||
@@ -262,8 +271,8 @@ TEST_F(MaatGroupExclude, level_3_perf) {
|
||||
|
||||
//delete group_id = 7, super_group_id = 6, is_exclude = 1
|
||||
memset(table_line, 0, sizeof(table_line));
|
||||
sprintf(table_line, "%lld\t%lld\t%d\t%d", rules.del_items[0].group_id,
|
||||
rules.del_items[0].super_group_id, rules.del_items[0].is_exclude, 0);
|
||||
sprintf(table_line, "%s\t%lld\t%s\t%d", rules.del_items[0].incl_ids_str,
|
||||
rules.del_items[0].super_group_id, rules.del_items[0].excl_ids_str, 0);
|
||||
group2group_runtime_update(g2g_runtime, g2g_schema, table_name, table_line, 4);
|
||||
group2group_runtime_commit(g2g_runtime, table_name, 5);
|
||||
|
||||
@@ -279,8 +288,8 @@ TEST_F(MaatGroupExclude, level_3_perf) {
|
||||
|
||||
//delete group_id = 13, super_group_id = 4, is_exclude = 1
|
||||
memset(table_line, 0, sizeof(table_line));
|
||||
sprintf(table_line, "%lld\t%lld\t%d\t%d", rules.del_items[1].group_id,
|
||||
rules.del_items[1].super_group_id, rules.del_items[1].is_exclude, 0);
|
||||
sprintf(table_line, "%s\t%lld\t%s\t%d", rules.del_items[1].incl_ids_str,
|
||||
rules.del_items[1].super_group_id, rules.del_items[1].excl_ids_str, 0);
|
||||
group2group_runtime_update(g2g_runtime, g2g_schema, table_name, table_line, 4);
|
||||
group2group_runtime_commit(g2g_runtime, table_name, 6);
|
||||
|
||||
@@ -308,14 +317,15 @@ TEST_F(MaatGroupExclude, level_4_function) {
|
||||
assert(0);
|
||||
}
|
||||
|
||||
memset(&rules, 0, sizeof(rules));
|
||||
int ret = parse_config_file("group_exclude_L4.conf", &rules);
|
||||
EXPECT_EQ(ret, 0);
|
||||
|
||||
for (size_t i = 0; i < rules.n_add_item; i++) {
|
||||
memset(table_line, 0, sizeof(table_line));
|
||||
|
||||
sprintf(table_line, "%lld\t%lld\t%d\t%d", rules.add_items[i].group_id,
|
||||
rules.add_items[i].super_group_id, rules.add_items[i].is_exclude, 1);
|
||||
sprintf(table_line, "%s\t%lld\t%s\t%d", rules.add_items[i].incl_ids_str,
|
||||
rules.add_items[i].super_group_id, rules.add_items[i].excl_ids_str, 1);
|
||||
group2group_runtime_update(g2g_runtime, g2g_schema, table_name, table_line, 4);
|
||||
}
|
||||
|
||||
@@ -334,8 +344,8 @@ TEST_F(MaatGroupExclude, level_4_function) {
|
||||
|
||||
//delete group_id = 10, super_group_id = 6, is_exclude = 1
|
||||
memset(table_line, 0, sizeof(table_line));
|
||||
sprintf(table_line, "%lld\t%lld\t%d\t%d", rules.del_items[0].group_id,
|
||||
rules.del_items[0].super_group_id, rules.del_items[0].is_exclude, 0);
|
||||
sprintf(table_line, "%s\t%lld\t%s\t%d", rules.del_items[0].incl_ids_str,
|
||||
rules.del_items[0].super_group_id, rules.del_items[0].excl_ids_str, 0);
|
||||
group2group_runtime_update(g2g_runtime, g2g_schema, table_name, table_line, 4);
|
||||
group2group_runtime_commit(g2g_runtime, table_name, 8);
|
||||
|
||||
@@ -364,14 +374,15 @@ TEST_F(MaatGroupExclude, level_4_perf) {
|
||||
assert(0);
|
||||
}
|
||||
|
||||
memset(&rules, 0, sizeof(rules));
|
||||
int ret = parse_config_file("group_exclude_L4.conf", &rules);
|
||||
EXPECT_EQ(ret, 0);
|
||||
|
||||
for (size_t i = 0; i < rules.n_add_item; i++) {
|
||||
memset(table_line, 0, sizeof(table_line));
|
||||
|
||||
sprintf(table_line, "%lld\t%lld\t%d\t%d", rules.add_items[i].group_id,
|
||||
rules.add_items[i].super_group_id, rules.add_items[i].is_exclude, 1);
|
||||
sprintf(table_line, "%s\t%lld\t%s\t%d", rules.add_items[i].incl_ids_str,
|
||||
rules.add_items[i].super_group_id, rules.add_items[i].excl_ids_str, 1);
|
||||
group2group_runtime_update(g2g_runtime, g2g_schema, table_name, table_line, 4);
|
||||
}
|
||||
|
||||
@@ -394,8 +405,8 @@ TEST_F(MaatGroupExclude, level_4_perf) {
|
||||
|
||||
//delete group_id = 10, super_group_id = 6, is_exclude = 1
|
||||
memset(table_line, 0, sizeof(table_line));
|
||||
sprintf(table_line, "%lld\t%lld\t%d\t%d", rules.del_items[0].group_id,
|
||||
rules.del_items[0].super_group_id, rules.del_items[0].is_exclude, 0);
|
||||
sprintf(table_line, "%s\t%lld\t%s\t%d", rules.del_items[0].incl_ids_str,
|
||||
rules.del_items[0].super_group_id, rules.del_items[0].excl_ids_str, 0);
|
||||
group2group_runtime_update(g2g_runtime, g2g_schema, table_name, table_line, 4);
|
||||
group2group_runtime_commit(g2g_runtime, table_name, 8);
|
||||
|
||||
@@ -423,14 +434,15 @@ TEST_F(MaatGroupExclude, level_exceed_function) {
|
||||
assert(0);
|
||||
}
|
||||
|
||||
memset(&rules, 0, sizeof(rules));
|
||||
int ret = parse_config_file("group_exclude_exceed.conf", &rules);
|
||||
EXPECT_EQ(ret, 0);
|
||||
|
||||
for (size_t i = 0; i < rules.n_add_item; i++) {
|
||||
memset(table_line, 0, sizeof(table_line));
|
||||
|
||||
sprintf(table_line, "%lld\t%lld\t%d\t%d", rules.add_items[i].group_id,
|
||||
rules.add_items[i].super_group_id, rules.add_items[i].is_exclude, 1);
|
||||
sprintf(table_line, "%s\t%lld\t%s\t%d", rules.add_items[i].incl_ids_str,
|
||||
rules.add_items[i].super_group_id, rules.add_items[i].excl_ids_str, 1);
|
||||
group2group_runtime_update(g2g_runtime, g2g_schema, table_name, table_line, 4);
|
||||
}
|
||||
|
||||
@@ -450,8 +462,8 @@ TEST_F(MaatGroupExclude, level_exceed_function) {
|
||||
|
||||
//delete group_id = 13, super_group_id = 10, is_exclude = 0
|
||||
memset(table_line, 0, sizeof(table_line));
|
||||
sprintf(table_line, "%lld\t%lld\t%d\t%d", rules.del_items[0].group_id,
|
||||
rules.del_items[0].super_group_id, rules.del_items[0].is_exclude, 0);
|
||||
sprintf(table_line, "%s\t%lld\t%s\t%d", rules.del_items[0].incl_ids_str,
|
||||
rules.del_items[0].super_group_id, rules.del_items[0].excl_ids_str, 0);
|
||||
group2group_runtime_update(g2g_runtime, g2g_schema, table_name, table_line, 4);
|
||||
group2group_runtime_commit(g2g_runtime, table_name, 9);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user