summaryrefslogtreecommitdiff
path: root/test/maat_framework_gtest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/maat_framework_gtest.cpp')
-rw-r--r--test/maat_framework_gtest.cpp1425
1 files changed, 1343 insertions, 82 deletions
diff --git a/test/maat_framework_gtest.cpp b/test/maat_framework_gtest.cpp
index 8accf7d..0e1b797 100644
--- a/test/maat_framework_gtest.cpp
+++ b/test/maat_framework_gtest.cpp
@@ -374,7 +374,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in JsonUpdate failed.",
__FUNCTION__, __LINE__);
assert(0);
@@ -415,8 +415,12 @@ void scan_with_old_or_new_cfg(struct maat *maat_inst, int is_old)
} else {
EXPECT_EQ(ret, MAAT_SCAN_OK);
}
- maat_state_reset(state);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ maat_state_reset(state);
ret = maat_scan_string(maat_inst, table_id, hit_new_data,
strlen(hit_new_data), results, ARRAY_SIZE,
&n_hit_result, state);
@@ -427,6 +431,10 @@ void scan_with_old_or_new_cfg(struct maat *maat_inst, int is_old)
EXPECT_EQ(ret, MAAT_SCAN_OK);
}
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
}
@@ -463,7 +471,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.", __FUNCTION__, __LINE__);
}
@@ -477,7 +485,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in MaatFlagScan failed.",
__FUNCTION__, __LINE__);
}
@@ -515,6 +523,10 @@ TEST_F(MaatFlagScan, basic) {
EXPECT_EQ(results[0], 207);
EXPECT_EQ(results[1], 192);
+ ret = maat_scan_not_logic(maat_inst, flag_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
struct maat_hit_path hit_path[HIT_PATH_SIZE] = {0};
int n_read = 0;
n_read = maat_state_get_hit_paths(state, hit_path, HIT_PATH_SIZE);
@@ -530,6 +542,10 @@ TEST_F(MaatFlagScan, basic) {
EXPECT_EQ(n_hit_result, 2);
EXPECT_EQ(results[0], 207);
EXPECT_EQ(results[1], 192);
+
+ ret = maat_scan_not_logic(maat_inst, flag_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
maat_state_reset(state);
scan_data = 6;
@@ -539,6 +555,11 @@ TEST_F(MaatFlagScan, basic) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
EXPECT_EQ(n_hit_result, 0);
+
+ ret = maat_scan_not_logic(maat_inst, flag_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -563,6 +584,10 @@ TEST_F(MaatFlagScan, withExprRegion) {
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
EXPECT_EQ(n_hit_result, 0);
+ ret = maat_scan_not_logic(maat_inst, flag_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
struct maat_hit_path hit_path[HIT_PATH_SIZE] = {0};
int n_read = 0;
n_read = maat_state_get_hit_paths(state, hit_path, HIT_PATH_SIZE);
@@ -575,6 +600,11 @@ TEST_F(MaatFlagScan, withExprRegion) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 193);
+
+ ret = maat_scan_not_logic(maat_inst, expr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -601,11 +631,19 @@ TEST_F(MaatFlagScan, hitMultiCompile) {
EXPECT_EQ(results[1], 194);
EXPECT_EQ(results[2], 192);
+ ret = maat_scan_not_logic(maat_inst, flag_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
memset(results, 0, sizeof(results));
ret = maat_scan_flag(maat_inst, flag_table_id, flag_scan_data, results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, flag_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
struct maat_hit_path hit_path[HIT_PATH_SIZE] = {0};
int n_read = 0;
n_read = maat_state_get_hit_paths(state, hit_path, HIT_PATH_SIZE);
@@ -635,6 +673,10 @@ TEST_F(MaatFlagScan, hitRepeatedCompile) {
EXPECT_EQ(results[0], 207);
EXPECT_EQ(results[1], 192);
+ ret = maat_scan_not_logic(maat_inst, flag_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
//compile_id:192 flag: 0000 0001 mask: 0000 0011
//compile_id:194 flag: 0001 0101 mask: 0001 1111
//scan_data: 0001 0101 should hit compile192 and compile194
@@ -646,11 +688,19 @@ TEST_F(MaatFlagScan, hitRepeatedCompile) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 194);
+ ret = maat_scan_not_logic(maat_inst, flag_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
memset(results, 0, sizeof(results));
ret = maat_scan_flag(maat_inst, flag_table_id, flag_scan_data2, results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, flag_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
struct maat_hit_path hit_path[HIT_PATH_SIZE] = {0};
int n_read = 0;
n_read = maat_state_get_hit_paths(state, hit_path, HIT_PATH_SIZE);
@@ -678,6 +728,10 @@ TEST_F(MaatFlagScan, FlagPlus) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_ERR);
+ ret = maat_scan_not_logic(maat_inst, flag_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_state_set_scan_district(state, flag_table_id, district_str,
strlen(district_str));
ASSERT_EQ(ret, 0);
@@ -688,10 +742,18 @@ TEST_F(MaatFlagScan, FlagPlus) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 196);
+ ret = maat_scan_not_logic(maat_inst, flag_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_flag(maat_inst, flag_table_id, scan_data1, results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, flag_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
struct maat_hit_path hit_path[HIT_PATH_SIZE] = {0};
int n_read = 0;
n_read = maat_state_get_hit_paths(state, hit_path, HIT_PATH_SIZE);
@@ -714,7 +776,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -730,7 +792,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in MaatHsStringScan failed.",
__FUNCTION__, __LINE__);
}
@@ -765,6 +827,11 @@ TEST_F(MaatHsStringScan, ScanDataOnlyOneByte) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
EXPECT_EQ(n_hit_result, 0);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -788,6 +855,11 @@ TEST_F(MaatHsStringScan, Full) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 125);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -807,6 +879,11 @@ TEST_F(MaatHsStringScan, Regex) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(results[0], 148);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -827,6 +904,10 @@ TEST_F(MaatHsStringScan, BackslashR_N_Escape) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(results[0], 225);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -849,6 +930,10 @@ TEST_F(MaatHsStringScan, ExprPlus) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_ERR);//Should return error for district not setting.
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_state_set_scan_district(state, table_id, district_str1,
strlen(district_str1));
ASSERT_EQ(ret, 0);
@@ -858,6 +943,10 @@ TEST_F(MaatHsStringScan, ExprPlus) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(results[0], 128);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
ret = maat_state_set_scan_district(state, table_id, district_str2,
strlen(district_str2));
@@ -867,6 +956,10 @@ TEST_F(MaatHsStringScan, ExprPlus) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(results[0], 190);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -918,12 +1011,20 @@ TEST_F(MaatHsStringScan, ExprPlusWithOffset)
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, table_id, (char*)udp_payload_hit,
sizeof(udp_payload_hit), results, ARRAY_SIZE,
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(results[0], 149);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -950,6 +1051,10 @@ TEST_F(MaatHsStringScan, ExprPlusWithHex) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(results[0], 156);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_state_set_scan_district(state, table_id, district_str2,
strlen(district_str2));
ASSERT_EQ(ret, 0);
@@ -957,12 +1062,20 @@ TEST_F(MaatHsStringScan, ExprPlusWithHex) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK); //maat-v3 consider as half hit, it's unreasonable
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
table_id = maat_get_table_id(maat_inst, "KEYWORDS_TABLE");
ret = maat_scan_string(maat_inst, table_id, scan_data2, strlen(scan_data2),
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(results[0], 132);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -986,6 +1099,10 @@ TEST_F(MaatHsStringScan, ExprAndExprPlus) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_ERR);
+ ret = maat_scan_not_logic(maat_inst, expr_plus_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_state_set_scan_district(state, expr_plus_table_id, district_str,
strlen(district_str));
ASSERT_EQ(ret, 0);
@@ -994,12 +1111,20 @@ TEST_F(MaatHsStringScan, ExprAndExprPlus) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, expr_plus_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, expr_table_id, scan_data,
strlen(scan_data), results, ARRAY_SIZE,
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(results[0], 195);
+ ret = maat_scan_not_logic(maat_inst, expr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1037,6 +1162,10 @@ TEST_F(MaatHsStringScan, ShouldNotHitExprPlus) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK); //maat-v3 consider as half hit, it's unreasonable
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1060,6 +1189,10 @@ TEST_F(MaatHsStringScan, Expr8) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 182);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
struct maat_hit_path hit_path[HIT_PATH_SIZE] = {0};
int n_read = 0;
n_read = maat_state_get_hit_paths(state, hit_path, HIT_PATH_SIZE);
@@ -1084,7 +1217,12 @@ TEST_F(MaatHsStringScan, HexBinCaseSensitive) {
struct maat_state *state = maat_state_new(maat_inst, thread_id);
int ret = maat_scan_string(maat_inst, table_id, scan_data1, strlen(scan_data1),
results, ARRAY_SIZE, &n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
ret = maat_scan_string(maat_inst, table_id, scan_data2, strlen(scan_data2),
@@ -1094,6 +1232,10 @@ TEST_F(MaatHsStringScan, HexBinCaseSensitive) {
EXPECT_EQ(results[0], 206);
EXPECT_EQ(results[1], 191);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
}
@@ -1133,6 +1275,10 @@ TEST_F(MaatHsStringScan, BugReport20190325) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 150);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1158,6 +1304,10 @@ TEST_F(MaatHsStringScan, PrefixAndSuffix) {
int ret = maat_scan_integer(maat_inst, cont_sz_table_id, 2015, results,
ARRAY_SIZE, &n_hit_result, state);
+ ret = maat_scan_not_logic(maat_inst, cont_sz_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, mail_addr_table_id, hit_twice,
strlen(hit_twice), results, ARRAY_SIZE,
&n_hit_result, state);
@@ -1166,6 +1316,10 @@ TEST_F(MaatHsStringScan, PrefixAndSuffix) {
EXPECT_EQ(results[0], 151);
EXPECT_EQ(results[1], 152);
+ ret = maat_scan_not_logic(maat_inst, mail_addr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
ret = maat_scan_string(maat_inst, mail_addr_table_id, hit_suffix,
strlen(hit_suffix), results, ARRAY_SIZE,
@@ -1174,9 +1328,17 @@ TEST_F(MaatHsStringScan, PrefixAndSuffix) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 151);
+ ret = maat_scan_not_logic(maat_inst, mail_addr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_integer(maat_inst, cont_sz_table_id, 2015, results,
ARRAY_SIZE, &n_hit_result, state);
+ ret = maat_scan_not_logic(maat_inst, cont_sz_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, mail_addr_table_id, hit_prefix,
strlen(hit_prefix), results, ARRAY_SIZE,
&n_hit_result, state);
@@ -1184,6 +1346,10 @@ TEST_F(MaatHsStringScan, PrefixAndSuffix) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 152);
+ ret = maat_scan_not_logic(maat_inst, mail_addr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1206,6 +1372,10 @@ TEST_F(MaatHsStringScan, MaatUnescape) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 132);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1240,6 +1410,13 @@ TEST_F(MaatHsStringScan, OffsetChunk64) {
pass_flag = 1;
break;
}
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results,
+ ARRAY_SIZE, &n_hit_result, state);
+ if (ret > 0) {
+ pass_flag = 1;
+ break;
+ }
}
EXPECT_EQ(pass_flag, 1);
EXPECT_EQ(results[0], 136);
@@ -1279,6 +1456,13 @@ TEST_F(MaatHsStringScan, OffsetChunk1460) {
pass_flag = 1;
break;
}
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ if (ret > 0) {
+ pass_flag = 1;
+ break;
+ }
}
EXPECT_EQ(pass_flag, 1);
EXPECT_EQ(results[0], 136);
@@ -1316,6 +1500,13 @@ TEST_F(MaatHsStringScan, StreamScanUTF8) {
pass_flag = 1;
break;
}
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ if (ret == MAAT_SCAN_HIT) {
+ pass_flag = 1;
+ break;
+ }
}
EXPECT_EQ(pass_flag, 1);
@@ -1349,12 +1540,21 @@ TEST_F(MaatHsStringScan, StreamInput) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_stream_scan(sp, scan_data2, strlen(scan_data2), results,
ARRAY_SIZE, &n_hit_result, state);
maat_stream_free(sp);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(results[0], 125);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1376,6 +1576,10 @@ TEST_F(MaatHsStringScan, dynamic_config) {
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
EXPECT_EQ(n_hit_result, 0);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
const char *compile_table_name = "COMPILE_DEFAULT";
@@ -1409,6 +1613,11 @@ TEST_F(MaatHsStringScan, dynamic_config) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile_id);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
/* EXPR_TYPE_AND MATCH_METHOD_SUB */
@@ -1432,6 +1641,11 @@ TEST_F(MaatHsStringScan, dynamic_config) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
EXPECT_EQ(n_hit_result, 0);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1449,7 +1663,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -1465,7 +1679,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in MaatRsStringScan failed.",
__FUNCTION__, __LINE__);
}
@@ -1502,6 +1716,10 @@ TEST_F(MaatRsStringScan, ScanDataOnlyOneByte) {
EXPECT_EQ(ret, MAAT_SCAN_OK);
EXPECT_EQ(n_hit_result, 0);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1526,6 +1744,10 @@ TEST_F(MaatRsStringScan, Full) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 125);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1547,6 +1769,10 @@ TEST_F(MaatRsStringScan, Regex) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 148);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1567,6 +1793,10 @@ TEST_F(MaatRsStringScan, BackslashR_N_Escape) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(results[0], 225);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1592,6 +1822,10 @@ TEST_F(MaatRsStringScan, ExprPlus) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_ERR);//Should return error for district not setting.
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_state_set_scan_district(state, table_id, district_str1,
strlen(district_str1));
ASSERT_EQ(ret, 0);
@@ -1603,6 +1837,10 @@ TEST_F(MaatRsStringScan, ExprPlus) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 128);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
ret = maat_state_set_scan_district(state, table_id, district_str2,
strlen(district_str2));
@@ -1614,6 +1852,10 @@ TEST_F(MaatRsStringScan, ExprPlus) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 190);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1665,6 +1907,10 @@ TEST_F(MaatRsStringScan, ExprPlusWithOffset)
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, table_id, (char*)udp_payload_hit,
sizeof(udp_payload_hit), results, ARRAY_SIZE,
&n_hit_result, state);
@@ -1672,6 +1918,10 @@ TEST_F(MaatRsStringScan, ExprPlusWithOffset)
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 149);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1699,6 +1949,10 @@ TEST_F(MaatRsStringScan, ExprPlusWithHex) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 156);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_state_set_scan_district(state, table_id, district_str2,
strlen(district_str2));
ASSERT_EQ(ret, 0);
@@ -1706,6 +1960,10 @@ TEST_F(MaatRsStringScan, ExprPlusWithHex) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK); //maat-v3 consider as half hit, it's unreasonable
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
table_id = maat_get_table_id(maat_inst, "KEYWORDS_TABLE");
ret = maat_scan_string(maat_inst, table_id, scan_data2, strlen(scan_data2),
results, ARRAY_SIZE, &n_hit_result, state);
@@ -1713,6 +1971,10 @@ TEST_F(MaatRsStringScan, ExprPlusWithHex) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 132);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1736,6 +1998,10 @@ TEST_F(MaatRsStringScan, ExprAndExprPlus) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_ERR);
+ ret = maat_scan_not_logic(maat_inst, expr_plus_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_state_set_scan_district(state, expr_plus_table_id, district_str,
strlen(district_str));
ASSERT_EQ(ret, 0);
@@ -1745,6 +2011,10 @@ TEST_F(MaatRsStringScan, ExprAndExprPlus) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, expr_plus_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, expr_table_id, scan_data,
strlen(scan_data), results, ARRAY_SIZE,
&n_hit_result, state);
@@ -1752,6 +2022,10 @@ TEST_F(MaatRsStringScan, ExprAndExprPlus) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 195);
+ ret = maat_scan_not_logic(maat_inst, expr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1789,6 +2063,10 @@ TEST_F(MaatRsStringScan, ShouldNotHitExprPlus) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK); //maat-v3 consider as half hit, it's unreasonable
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1810,6 +2088,10 @@ TEST_F(MaatRsStringScan, Expr8) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 182);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
struct maat_hit_path hit_path[HIT_PATH_SIZE] = {0};
int n_read = 0;
n_read = maat_state_get_hit_paths(state, hit_path, HIT_PATH_SIZE);
@@ -1834,7 +2116,7 @@ TEST_F(MaatRsStringScan, HexBinCaseSensitive) {
struct maat_state *state = maat_state_new(maat_inst, thread_id);
int ret = maat_scan_string(maat_inst, table_id, scan_data1, strlen(scan_data1),
results, ARRAY_SIZE, &n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
maat_state_reset(state);
ret = maat_scan_string(maat_inst, table_id, scan_data2, strlen(scan_data2),
@@ -1844,6 +2126,10 @@ TEST_F(MaatRsStringScan, HexBinCaseSensitive) {
EXPECT_EQ(results[0], 206);
EXPECT_EQ(results[1], 191);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1884,6 +2170,10 @@ TEST_F(MaatRsStringScan, BugReport20190325) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 150);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1909,6 +2199,10 @@ TEST_F(MaatRsStringScan, PrefixAndSuffix) {
int ret = maat_scan_integer(maat_inst, cont_sz_table_id, 2015, results,
ARRAY_SIZE, &n_hit_result, state);
+ ret = maat_scan_not_logic(maat_inst, cont_sz_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, mail_addr_table_id, hit_twice,
strlen(hit_twice), results, ARRAY_SIZE,
&n_hit_result, state);
@@ -1917,6 +2211,10 @@ TEST_F(MaatRsStringScan, PrefixAndSuffix) {
EXPECT_EQ(results[0], 151);
EXPECT_EQ(results[1], 152);
+ ret = maat_scan_not_logic(maat_inst, mail_addr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
ret = maat_scan_string(maat_inst, mail_addr_table_id, hit_suffix,
strlen(hit_suffix), results, ARRAY_SIZE,
@@ -1925,8 +2223,17 @@ TEST_F(MaatRsStringScan, PrefixAndSuffix) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 151);
+ ret = maat_scan_not_logic(maat_inst, mail_addr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_integer(maat_inst, cont_sz_table_id, 2015, results,
ARRAY_SIZE, &n_hit_result, state);
+
+ ret = maat_scan_not_logic(maat_inst, cont_sz_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, mail_addr_table_id, hit_prefix,
strlen(hit_prefix), results, ARRAY_SIZE,
&n_hit_result, state);
@@ -1934,6 +2241,10 @@ TEST_F(MaatRsStringScan, PrefixAndSuffix) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 152);
+ ret = maat_scan_not_logic(maat_inst, mail_addr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1956,6 +2267,10 @@ TEST_F(MaatRsStringScan, MaatUnescape) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 132);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -1990,6 +2305,13 @@ TEST_F(MaatRsStringScan, OffsetChunk64) {
pass_flag = 1;
break;
}
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ if (ret > 0) {
+ pass_flag = 1;
+ break;
+ }
}
EXPECT_EQ(pass_flag, 1);
EXPECT_EQ(results[0], 136);
@@ -2030,6 +2352,13 @@ TEST_F(MaatRsStringScan, OffsetChunk1460) {
pass_flag = 1;
break;
}
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ if (ret > 0) {
+ pass_flag = 1;
+ break;
+ }
}
EXPECT_EQ(pass_flag, 1);
@@ -2070,6 +2399,13 @@ TEST_F(MaatRsStringScan, StreamScanUTF8) {
pass_flag = 1;
break;
}
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ if (ret > 0) {
+ pass_flag = 1;
+ break;
+ }
}
EXPECT_EQ(pass_flag, 1);
@@ -2102,6 +2438,10 @@ TEST_F(MaatRsStringScan, StreamInput) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_stream_scan(sp, scan_data2, strlen(scan_data2), results,
ARRAY_SIZE, &n_hit_result, state);
maat_stream_free(sp);
@@ -2110,6 +2450,10 @@ TEST_F(MaatRsStringScan, StreamInput) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 125);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2130,6 +2474,10 @@ TEST_F(MaatRsStringScan, dynamic_config) {
EXPECT_EQ(n_hit_result, 0);
maat_state_reset(state);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
const char *compile_table_name = "COMPILE_DEFAULT";
const char *g2c_table_name = "GROUP2COMPILE_DEFAULT";
@@ -2162,6 +2510,10 @@ TEST_F(MaatRsStringScan, dynamic_config) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
/* EXPR_TYPE_AND MATCH_METHOD_SUB*/
@@ -2186,6 +2538,10 @@ TEST_F(MaatRsStringScan, dynamic_config) {
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
EXPECT_EQ(n_hit_result, 0);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2255,12 +2611,20 @@ TEST_F(MaatHsStreamScan, dynamic_config) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_stream_scan(sp, scan_data2, strlen(scan_data2), results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
// STEP 2: Inc config update, use same stream to scan and wait old expr_runtime invalid
@@ -2285,6 +2649,10 @@ TEST_F(MaatHsStreamScan, dynamic_config) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_stream_free(sp);
maat_state_free(state);
sp = NULL;
@@ -2357,12 +2725,20 @@ TEST_F(MaatRsStreamScan, dynamic_config) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_stream_scan(sp, scan_data2, strlen(scan_data2), results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
// STEP 2: Inc config update, use same stream to scan and wait old expr_runtime invalid
@@ -2377,6 +2753,11 @@ TEST_F(MaatRsStreamScan, dynamic_config) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
sleep(WAIT_FOR_EFFECTIVE_S);
@@ -2386,6 +2767,10 @@ TEST_F(MaatRsStreamScan, dynamic_config) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_stream_free(sp);
maat_state_free(state);
sp = NULL;
@@ -2405,7 +2790,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -2419,7 +2804,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in MaatIPScan failed.",
__FUNCTION__, __LINE__);
}
@@ -2460,6 +2845,10 @@ TEST_F(MaatIPScan, IPv4ScanDataFull_0) {
EXPECT_EQ(ret, MAAT_SCAN_OK);
EXPECT_EQ(n_hit_result, 0);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2487,6 +2876,10 @@ TEST_F(MaatIPScan, IPv4ScanDataFull_1) {
EXPECT_EQ(ret, MAAT_SCAN_OK);
EXPECT_EQ(n_hit_result, 0);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2512,6 +2905,11 @@ TEST_F(MaatIPScan, IPv4RuleFull_0) {
ret = maat_scan_ipv4(maat_inst, table_id, sip, port, proto,
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
port = htons(64999);
@@ -2521,6 +2919,10 @@ TEST_F(MaatIPScan, IPv4RuleFull_0) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 169);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2548,6 +2950,10 @@ TEST_F(MaatIPScan, IPv6ScanDataFull_0) {
EXPECT_EQ(ret, MAAT_SCAN_OK);
EXPECT_EQ(n_hit_result, 0);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
}
@@ -2574,6 +2980,10 @@ TEST_F(MaatIPScan, IPv6ScanDataFull_1) {
EXPECT_EQ(ret, MAAT_SCAN_OK);
EXPECT_EQ(n_hit_result, 0);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
}
@@ -2598,6 +3008,11 @@ TEST_F(MaatIPScan, IPv6RuleFull_0) {
ret = maat_scan_ipv6(maat_inst, table_id, sip, port, proto,
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
port = htons(64999);
@@ -2607,6 +3022,10 @@ TEST_F(MaatIPScan, IPv6RuleFull_0) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 210);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2635,6 +3054,11 @@ TEST_F(MaatIPScan, IPv4_IPPort) {
EXPECT_EQ(n_hit_result, 2);
EXPECT_EQ(results[0], 208);
EXPECT_EQ(results[1], 154);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2661,6 +3085,10 @@ TEST_F(MaatIPScan, IPv6_IPPort) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 155);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2685,6 +3113,10 @@ TEST_F(MaatIPScan, BugReport20210515) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2709,6 +3141,11 @@ TEST_F(MaatIPScan, dynamic_config) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
EXPECT_EQ(n_hit_result, 0);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
const char *compile_table_name = "COMPILE_DEFAULT";
@@ -2740,6 +3177,11 @@ TEST_F(MaatIPScan, dynamic_config) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile_id);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
/* ip table del line */
@@ -2764,6 +3206,10 @@ TEST_F(MaatIPScan, dynamic_config) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2781,7 +3227,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.", __FUNCTION__, __LINE__);
}
@@ -2794,7 +3240,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in MaatIntervalScan failed.",
__FUNCTION__, __LINE__);
}
@@ -2826,6 +3272,11 @@ TEST_F(MaatIntervalScan, IntegerRange) {
int ret = maat_scan_integer(maat_inst, table_id, scan_data1, results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
unsigned int scan_data2 = 300;
@@ -2834,6 +3285,10 @@ TEST_F(MaatIntervalScan, IntegerRange) {
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
EXPECT_EQ(n_hit_result, 0);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2855,6 +3310,10 @@ TEST_F(MaatIntervalScan, SingleInteger) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 218);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2882,10 +3341,108 @@ TEST_F(MaatIntervalScan, IntervalPlus) {
EXPECT_EQ(results[0], 209);
EXPECT_EQ(results[1], 179);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
+class MaatGroupScan : public testing::Test
+{
+protected:
+ static void SetUpTestCase() {
+ const char *accept_tags = "{\"tags\":[{\"tag\":\"location\",\"value\":\"北京/朝阳/华严北里/甲22号\"},"
+ "{\"tag\":\"isp\",\"value\":\"移动\"},{\"tag\":\"location\",\"value\":\"Astana\"}]}";
+ char redis_ip[64] = "127.0.0.1";
+ int redis_port = 6379;
+ int redis_db = 0;
+
+ logger = log_handle_create("./maat_framework_gtest.log", 0);
+ int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
+ if (ret < 0) {
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
+ "[%s:%d] write config to redis failed.", __FUNCTION__, __LINE__);
+ }
+
+ struct maat_options *opts = maat_options_new();
+ maat_options_set_redis(opts, redis_ip, redis_port, redis_db);
+ maat_options_set_stat_file(opts, "./stat.log");
+ maat_options_set_logger(opts, "./maat_framework_gtest.log", LOG_LEVEL_INFO);
+ maat_options_set_accept_tags(opts, accept_tags);
+
+ _shared_maat_inst = maat_new(opts, table_info_path);
+ maat_options_free(opts);
+ if (NULL == _shared_maat_inst) {
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
+ "[%s:%d] create maat instance in MaatGroupScan failed.",
+ __FUNCTION__, __LINE__);
+ }
+ }
+
+ static void TearDownTestCase() {
+ maat_free(_shared_maat_inst);
+ log_handle_destroy(logger);
+ }
+
+ static struct log_handle *logger;
+ static struct maat *_shared_maat_inst;
+};
+
+struct maat *MaatGroupScan::_shared_maat_inst;
+struct log_handle *MaatGroupScan::logger;
+
+TEST_F(MaatGroupScan, basic) {
+ long long results[ARRAY_SIZE] = {0};
+ size_t n_hit_result = 0;
+ int thread_id = 0;
+ const char *table_name = "KEYWORDS_TABLE";
+ struct maat *maat_inst = MaatGroupScan::_shared_maat_inst;
+ struct maat_state *state = maat_state_new(maat_inst, thread_id);
+
+ int table_id = maat_get_table_id(maat_inst, table_name);
+ ASSERT_GE(table_id, 0);
+
+ long long group_id = 158;
+ int ret = maat_scan_group(maat_inst, table_id, &group_id, 1, results,
+ ARRAY_SIZE, &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_HIT);
+ EXPECT_EQ(n_hit_result, 1);
+ EXPECT_EQ(results[0], 226);
+
+ maat_state_free(state);
+ state = NULL;
+}
+
+TEST_F(MaatGroupScan, SetScanCompileTable) {
+ long long results[ARRAY_SIZE] = {0};
+ size_t n_hit_result = 0;
+ int thread_id = 0;
+ const char *table_name = "KEYWORDS_TABLE";
+ struct maat *maat_inst = MaatGroupScan::_shared_maat_inst;
+ struct maat_state *state = maat_state_new(maat_inst, thread_id);
+
+ int table_id = maat_get_table_id(maat_inst, table_name);
+ ASSERT_GE(table_id, 0);
+
+ const char *compile_table_name = "COMPILE_FIREWALL_CONJUNCTION";
+ int compile_table_id = maat_get_table_id(maat_inst, compile_table_name);
+
+ int ret = maat_state_set_scan_compile_table(state, compile_table_id);
+ EXPECT_EQ(ret, 0);
+
+ long long group_id = 159;
+ ret = maat_scan_group(maat_inst, table_id, &group_id, 1, results,
+ ARRAY_SIZE, &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_HIT);
+ EXPECT_EQ(n_hit_result, 1);
+ EXPECT_EQ(results[0], 227);
+
+ maat_state_free(state);
+ state = NULL;
+}
+
class NOTLogic : public testing::Test
{
protected:
@@ -2899,7 +3456,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -2913,7 +3470,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in NOTLogic failed.",
__FUNCTION__, __LINE__);
}
@@ -2949,9 +3506,14 @@ TEST_F(NOTLogic, OneRegion) {
strlen(string_should_hit), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HIT);
- EXPECT_EQ(n_hit_result, 1);
+ EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_HIT);
+ EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 143);
+
maat_state_reset(state);
ret = maat_scan_string(maat_inst, table_id, string_should_not_hit,
@@ -2959,6 +3521,10 @@ TEST_F(NOTLogic, OneRegion) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -2984,6 +3550,10 @@ TEST_F(NOTLogic, ScanNotAtLast) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
int not_hit_table_id = maat_get_table_id(maat_inst, not_hit_table_name);
ASSERT_GT(not_hit_table_id, 0);
@@ -2992,10 +3562,18 @@ TEST_F(NOTLogic, ScanNotAtLast) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, not_hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, not_hit_table_id, string_contain_nothing,
strlen(string_contain_nothing), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, not_hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 144);
@@ -3022,12 +3600,20 @@ TEST_F(NOTLogic, ScanIrrelavantAtLast) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
int not_hit_table_id = maat_get_table_id(maat_inst, not_hit_table_name);
ASSERT_GT(hit_table_id, 0);
ret = maat_scan_string(maat_inst, not_hit_table_id, string_irrelevant,
strlen(string_irrelevant), results, ARRAY_SIZE,
&n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, not_hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 144);
@@ -3054,7 +3640,11 @@ TEST_F(NOTLogic, ScanHitAtLastEmptyExpr) {
int ret = maat_scan_string(maat_inst, not_hit_table_id, string_should_not_hit,
strlen(string_should_not_hit), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, not_hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
uint32_t sip;
inet_pton(AF_INET, "10.0.8.186", &sip);
@@ -3070,6 +3660,10 @@ TEST_F(NOTLogic, ScanHitAtLastEmptyExpr) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 186);
+ ret = maat_scan_not_logic(maat_inst, hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
int empty_table_id = maat_get_table_id(maat_inst, empty_table_name);
ASSERT_GT(empty_table_id, 0);
@@ -3078,6 +3672,10 @@ TEST_F(NOTLogic, ScanHitAtLastEmptyExpr) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, empty_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -3099,7 +3697,11 @@ TEST_F(NOTLogic, ScanHitAtLastEmptyInteger) {
int ret = maat_scan_string(maat_inst, not_hit_table_id, string_should_not_hit,
strlen(string_should_not_hit), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, not_hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
uint32_t sip;
inet_pton(AF_INET, "10.0.8.187", &sip);
@@ -3115,6 +3717,10 @@ TEST_F(NOTLogic, ScanHitAtLastEmptyInteger) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 187);
+ ret = maat_scan_not_logic(maat_inst, hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
int empty_table_id = maat_get_table_id(maat_inst, empty_table_name);
ASSERT_GT(empty_table_id, 0);
@@ -3122,6 +3728,10 @@ TEST_F(NOTLogic, ScanHitAtLastEmptyInteger) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, empty_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -3144,6 +3754,10 @@ TEST_F(NOTLogic, ScanNotIP) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
uint32_t sip;
inet_pton(AF_INET, "10.0.6.205", &sip);
uint16_t port = htons(50001);
@@ -3156,10 +3770,18 @@ TEST_F(NOTLogic, ScanNotIP) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, not_hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
inet_pton(AF_INET, "10.1.0.0", &sip);
ret = maat_scan_ipv4(maat_inst, not_hit_table_id, sip, port, proto,
results, ARRAY_SIZE, &n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, not_hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 145);
@@ -3188,6 +3810,10 @@ TEST_F(NOTLogic, ScanNotWithDistrict) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, url_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
int virtual_table_id = maat_get_table_id(maat_inst, virtual_table_name);
ASSERT_GT(virtual_table_id, 0);
@@ -3199,8 +3825,16 @@ TEST_F(NOTLogic, ScanNotWithDistrict) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, virtual_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, virtual_table_id, string3, strlen(string3),
results, ARRAY_SIZE, &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, virtual_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 221);
@@ -3231,6 +3865,10 @@ TEST_F(NOTLogic, NotUrlAndNotIp) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, url_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
uint32_t sip;
inet_pton(AF_INET, "10.1.0.0", &sip);
uint16_t port = htons(50001);
@@ -3241,7 +3879,11 @@ TEST_F(NOTLogic, NotUrlAndNotIp) {
ret = maat_scan_ipv4(maat_inst, ip_table_id, sip, port, proto,
results, ARRAY_SIZE, &n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, ip_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
int http_table_id = maat_get_table_id(maat_inst, http_table_name);
ASSERT_GT(http_table_id, 0);
@@ -3251,10 +3893,18 @@ TEST_F(NOTLogic, NotUrlAndNotIp) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, http_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, http_table_id, string_nothing,
strlen(string_nothing), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, http_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 146);
@@ -3285,12 +3935,24 @@ TEST_F(NOTLogic, NotPhysicalTable) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, phy_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, vtable_id, string2, strlen(string2),
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, vtable_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, phy_table_id, string3, strlen(string3),
results, ARRAY_SIZE, &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, phy_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 224);
@@ -3321,7 +3983,11 @@ TEST_F(NOTLogic, EightNotClause) {
int ret = maat_scan_string(maat_inst, table_id1, string_nothing,
strlen(string_nothing), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, table_id1, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
int table_id2 = maat_get_table_id(maat_inst, table_name2);
ASSERT_GT(table_id2, 0);
@@ -3329,7 +3995,11 @@ TEST_F(NOTLogic, EightNotClause) {
ret = maat_scan_string(maat_inst, table_id2, string_nothing,
strlen(string_nothing), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, table_id2, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
int table_id3 = maat_get_table_id(maat_inst, table_name3);
ASSERT_GT(table_id3, 0);
@@ -3337,15 +4007,23 @@ TEST_F(NOTLogic, EightNotClause) {
ret = maat_scan_string(maat_inst, table_id3, string_nothing,
strlen(string_nothing), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id3, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
int table_id4 = maat_get_table_id(maat_inst, table_name4);
ASSERT_GT(table_id4, 0);
ret = maat_scan_string(maat_inst, table_id4, string_nothing,
strlen(string_nothing), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, table_id4, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
int table_id5 = maat_get_table_id(maat_inst, table_name5);
ASSERT_GT(table_id5, 0);
@@ -3353,7 +4031,11 @@ TEST_F(NOTLogic, EightNotClause) {
ret = maat_scan_string(maat_inst, table_id5, string_nothing,
strlen(string_nothing), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, table_id5, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
int table_id6 = maat_get_table_id(maat_inst, table_name6);
ASSERT_GT(table_id6, 0);
@@ -3361,7 +4043,11 @@ TEST_F(NOTLogic, EightNotClause) {
ret = maat_scan_string(maat_inst, table_id6, string_nothing,
strlen(string_nothing), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, table_id6, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
int table_id7 = maat_get_table_id(maat_inst, table_name7);
ASSERT_GT(table_id7, 0);
@@ -3369,7 +4055,11 @@ TEST_F(NOTLogic, EightNotClause) {
ret = maat_scan_string(maat_inst, table_id7, string_nothing,
strlen(string_nothing), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, table_id7, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
int table_id8 = maat_get_table_id(maat_inst, table_name8);
ASSERT_GT(table_id8, 0);
@@ -3377,7 +4067,11 @@ TEST_F(NOTLogic, EightNotClause) {
ret = maat_scan_string(maat_inst, table_id8, string_nothing,
strlen(string_nothing), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, table_id8, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 147);
@@ -3406,17 +4100,29 @@ TEST_F(NOTLogic, NotClauseAndExcludeGroup1) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, url_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, url_table_id, string_should_half_hit,
strlen(string_should_half_hit), results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, url_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
int http_table_id = maat_get_table_id(maat_inst, http_table_name);
ASSERT_GT(http_table_id, 0);
ret = maat_scan_string(maat_inst, http_table_id, string_nothing,
strlen(string_nothing), results, ARRAY_SIZE,
&n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, http_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 216);
@@ -3448,12 +4154,35 @@ TEST_F(NOTLogic, NotClauseAndExcludeGroup2) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, http_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, url_table_id, string1, strlen(string1),
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, url_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ maat_state_reset(state);
+
+ ret = maat_scan_string(maat_inst, http_table_id, string_keywords,
+ strlen(string_keywords), results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, http_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, url_table_id, string2, strlen(string2),
results, ARRAY_SIZE, &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, url_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 217);
@@ -3482,11 +4211,16 @@ TEST_F(NOTLogic, SameClauseHasMultiNotGroups) {
ret = maat_scan_string(maat_inst, table_id, string3, strlen(string3),
results, ARRAY_SIZE, &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 222);
maat_state_reset(state);
+
ret = maat_scan_string(maat_inst, table_id, not_string1, strlen(not_string1),
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
@@ -3497,6 +4231,10 @@ TEST_F(NOTLogic, SameClauseHasMultiNotGroups) {
ret = maat_scan_string(maat_inst, table_id, string3, strlen(string3),
results, ARRAY_SIZE, &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 222);
@@ -3518,7 +4256,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -3532,7 +4270,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in ExcludeLogic failed.",
__FUNCTION__, __LINE__);
}
@@ -3567,7 +4305,11 @@ TEST_F(ExcludeLogic, ScanExcludeAtFirst) {
int ret = maat_scan_string(maat_inst, not_hit_table_id, string_should_not_hit,
strlen(string_should_not_hit), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, not_hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
int hit_table_id = maat_get_table_id(maat_inst, hit_table_name);
ASSERT_GT(hit_table_id, 0);
@@ -3579,6 +4321,10 @@ TEST_F(ExcludeLogic, ScanExcludeAtFirst) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 199);
+ ret = maat_scan_not_logic(maat_inst, hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -3602,7 +4348,12 @@ TEST_F(ExcludeLogic, ScanExcludeAtLast) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
+
ret = maat_scan_string(maat_inst, table_id, string_should_hit,
strlen(string_should_hit), results,
ARRAY_SIZE, &n_hit_result, state);
@@ -3611,6 +4362,10 @@ TEST_F(ExcludeLogic, ScanExcludeAtLast) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 200);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -3636,14 +4391,22 @@ TEST_F(ExcludeLogic, ScanIrrelavantAtLast) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 200);
+ ret = maat_scan_not_logic(maat_inst, hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
int not_hit_table_id = maat_get_table_id(maat_inst, not_hit_table_name);
ASSERT_GT(hit_table_id, 0);
ret = maat_scan_string(maat_inst, not_hit_table_id, string_irrelevant,
strlen(string_irrelevant), results, ARRAY_SIZE,
&n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, not_hit_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -3672,25 +4435,42 @@ TEST_F(ExcludeLogic, ScanVirtualTable) {
EXPECT_EQ(results[0], 202);
maat_state_reset(state);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
inet_pton(AF_INET, "100.64.1.5", &should_hit_ip);
ret = maat_scan_ipv4(maat_inst, table_id, should_hit_ip, port, 6,
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 202);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
inet_pton(AF_INET, "100.64.1.6", &should_not_hit_ip);
ret = maat_scan_ipv4(maat_inst, table_id, should_not_hit_ip, port, 6,
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
inet_pton(AF_INET, "100.64.1.11", &should_not_hit_ip);
ret = maat_scan_ipv4(maat_inst, table_id, should_not_hit_ip, port, 6,
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
- maat_state_reset(state);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
maat_state_free(state);
}
@@ -3714,12 +4494,20 @@ TEST_F(ExcludeLogic, ScanWithMultiClause) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, ip_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
inet_pton(AF_INET, "47.92.108.93", &ip_addr);
port = htons(443);
ret = maat_scan_ipv4(maat_inst, ip_table_id, ip_addr, port, 6,
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, ip_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
const char *expr_table_name = "HTTP_RESPONSE_KEYWORDS";
int expr_table_id = maat_get_table_id(maat_inst, expr_table_name);
ASSERT_GT(expr_table_id, 0);
@@ -3730,6 +4518,10 @@ TEST_F(ExcludeLogic, ScanWithMultiClause) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, expr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
const char *should_hit_expr = "mail.jianshu.com";
ret = maat_scan_string(maat_inst, expr_table_id, should_hit_expr,
strlen(should_hit_expr), results, ARRAY_SIZE,
@@ -3738,6 +4530,10 @@ TEST_F(ExcludeLogic, ScanWithMultiClause) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 203);
+ ret = maat_scan_not_logic(maat_inst, expr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -3761,6 +4557,10 @@ TEST_F(ExcludeLogic, ExcludeInDifferentLevel) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, ip_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
inet_pton(AF_INET, "100.64.2.6", &ip_addr);
port = htons(443);
@@ -3768,6 +4568,10 @@ TEST_F(ExcludeLogic, ExcludeInDifferentLevel) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, ip_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
const char *expr_table_name = "HTTP_RESPONSE_KEYWORDS";
int expr_table_id = maat_get_table_id(maat_inst, expr_table_name);
ASSERT_GT(expr_table_id, 0);
@@ -3778,12 +4582,20 @@ TEST_F(ExcludeLogic, ExcludeInDifferentLevel) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, expr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
const char *should_not_hit_expr2 = "mail.baidu.com";
ret = maat_scan_string(maat_inst, expr_table_id, should_not_hit_expr2,
strlen(should_not_hit_expr2), results, ARRAY_SIZE,
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, expr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
const char *should_hit_expr = "hit.baidu.com";
ret = maat_scan_string(maat_inst, expr_table_id, should_hit_expr,
strlen(should_hit_expr), results, ARRAY_SIZE,
@@ -3792,6 +4604,10 @@ TEST_F(ExcludeLogic, ExcludeInDifferentLevel) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 204);
+ ret = maat_scan_not_logic(maat_inst, expr_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
}
@@ -3832,7 +4648,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -3846,7 +4662,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in PluginTable failed.",
__FUNCTION__, __LINE__);
}
@@ -4095,7 +4911,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -4109,7 +4925,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in IPPluginTable failed.",
__FUNCTION__, __LINE__);
}
@@ -4234,7 +5050,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -4248,7 +5064,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in IPPortPluginTable failed.",
__FUNCTION__, __LINE__);
}
@@ -4373,7 +5189,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -4387,7 +5203,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in FQDNPluginTable failed.",
__FUNCTION__, __LINE__);
}
@@ -4543,7 +5359,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -4557,7 +5373,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in BoolPluginTable failed.",
__FUNCTION__, __LINE__);
}
@@ -4629,7 +5445,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -4643,7 +5459,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in VirtualTable failed.",
__FUNCTION__, __LINE__);
}
@@ -4694,7 +5510,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -4709,7 +5525,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in CompileTable failed.",
__FUNCTION__, __LINE__);
}
@@ -4808,6 +5624,10 @@ TEST_F(CompileTable, Conjunction1) {
EXPECT_EQ(results[0], 197);
EXPECT_EQ(results[1], 141);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
struct maat_hit_path hit_path[HIT_PATH_SIZE] = {0};
int n_read = maat_state_get_hit_paths(state, hit_path, HIT_PATH_SIZE);
EXPECT_EQ(n_read, 2);
@@ -4836,6 +5656,10 @@ TEST_F(CompileTable, Conjunction2) {
EXPECT_EQ(results[0], 197);
EXPECT_EQ(results[1], 141);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
struct maat_hit_path hit_path[HIT_PATH_SIZE] = {0};
int n_read = maat_state_get_hit_paths(state, hit_path, HIT_PATH_SIZE);
EXPECT_EQ(n_read, 2);
@@ -4844,6 +5668,10 @@ TEST_F(CompileTable, Conjunction2) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
memset(hit_path, 0, sizeof(hit_path));
n_read = maat_state_get_hit_paths(state, hit_path, HIT_PATH_SIZE);
EXPECT_EQ(n_read, 4);
@@ -4865,7 +5693,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -4879,7 +5707,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in Policy failed.",
__FUNCTION__, __LINE__);
}
@@ -4967,11 +5795,19 @@ TEST_F(Policy, CompileRuleTags) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_string(maat_inst, table_id, should_hit,
strlen(should_hit), results, ARRAY_SIZE,
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -5002,7 +5838,7 @@ TEST_F(Policy, CompileEXData) {
compile_ex_param_dup,
0, &ex_data_counter);
ASSERT_TRUE(ret == 0);
- EXPECT_EQ(ex_data_counter, 1);
+ EXPECT_EQ(ex_data_counter, 2);
ret = maat_state_set_scan_compile_table(state, conj_compile_table_id);
EXPECT_EQ(ret, 0);
@@ -5013,6 +5849,10 @@ TEST_F(Policy, CompileEXData) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 198);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
int compile_table_ids[ARRAY_SIZE];
ret = maat_state_get_compile_table_ids(state, results, 1, compile_table_ids);
EXPECT_EQ(ret, 1);
@@ -5050,6 +5890,10 @@ TEST_F(Policy, SubGroup) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
table_id = maat_get_table_id(maat_inst, "IP_CONFIG");
ASSERT_GT(table_id, 0);
@@ -5059,6 +5903,10 @@ TEST_F(Policy, SubGroup) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(results[0], 153);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
const char *compile_table_name = "COMPILE_DEFAULT";
int phy_compile_table_id = maat_get_table_id(maat_inst, compile_table_name);
@@ -5089,6 +5937,10 @@ TEST_F(Policy, EvaluationOrder) {
EXPECT_EQ(results[1], 167);
EXPECT_EQ(results[2], 166);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
uint32_t ip_addr;
inet_pton(AF_INET, "192.168.23.23", &ip_addr);
uint16_t port = htons(65530);
@@ -5102,6 +5954,11 @@ TEST_F(Policy, EvaluationOrder) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 165);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
}
@@ -5134,7 +5991,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -5148,7 +6005,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in TableInfo failed.",
__FUNCTION__, __LINE__);
}
@@ -5191,6 +6048,10 @@ TEST_F(TableInfo, Conjunction) {
EXPECT_EQ(results[0], 134);
EXPECT_EQ(results[1], 133);
+ ret = maat_scan_not_logic(maat_inst, conj_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -5305,7 +6166,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.",
__FUNCTION__, __LINE__);
}
@@ -5319,7 +6180,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in HierarchyTest failed.",
__FUNCTION__, __LINE__);
}
@@ -5356,6 +6217,10 @@ TEST_F(HierarchyTest, VirtualOfOnePhysical)
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
table_id = maat_get_table_id(maat_inst, keywords_table_name);
ASSERT_GT(table_id, 0);
@@ -5364,6 +6229,11 @@ TEST_F(HierarchyTest, VirtualOfOnePhysical)
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 160);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
const char *should_not_hit = "2018-10-05 is a keywords of table "
@@ -5372,6 +6242,11 @@ TEST_F(HierarchyTest, VirtualOfOnePhysical)
strlen(should_not_hit), results, ARRAY_SIZE,
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -5403,6 +6278,10 @@ TEST_F(HierarchyTest, VirtualWithVirtual) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
table_id = maat_get_table_id(maat_inst, res_table_name);
ASSERT_GT(table_id, 0);
@@ -5417,6 +6296,10 @@ TEST_F(HierarchyTest, VirtualWithVirtual) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 162);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -5444,6 +6327,10 @@ TEST_F(HierarchyTest, OneGroupInTwoVirtual) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
table_id = maat_get_table_id(maat_inst, res_table_name);
ASSERT_GT(table_id, 0);
@@ -5458,6 +6345,10 @@ TEST_F(HierarchyTest, OneGroupInTwoVirtual) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 163);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -5485,6 +6376,10 @@ TEST_F(HierarchyTest, TwoVirtualInOneClause) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
table_id = maat_get_table_id(maat_inst, dst_asn_table_name);
ASSERT_GT(table_id, 0);
@@ -5494,6 +6389,10 @@ TEST_F(HierarchyTest, TwoVirtualInOneClause) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 178);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
//--------------------------------------
@@ -5510,6 +6409,10 @@ TEST_F(HierarchyTest, TwoVirtualInOneClause) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
table_id = maat_get_table_id(maat_inst, dst_asn_table_name);
ASSERT_GT(table_id, 0);
@@ -5519,6 +6422,10 @@ TEST_F(HierarchyTest, TwoVirtualInOneClause) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 178);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
//--------------------------------------
@@ -5531,6 +6438,10 @@ TEST_F(HierarchyTest, TwoVirtualInOneClause) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
table_id = maat_get_table_id(maat_inst, dst_asn_table_name);
ASSERT_GT(table_id, 0);
@@ -5540,6 +6451,10 @@ TEST_F(HierarchyTest, TwoVirtualInOneClause) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 178);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -5634,6 +6549,10 @@ TEST_F(MaatCmdTest, SetIP) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -5673,6 +6592,11 @@ TEST_F(MaatCmdTest, SetExpr) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_TRUE(results[0] == compile_id || results[0] == (compile_id - 1));
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
ret = compile_table_set_line(maat_inst, compile_table_name, MAAT_OP_DEL, compile_id-1,
@@ -5686,6 +6610,11 @@ TEST_F(MaatCmdTest, SetExpr) {
ret = maat_scan_string(maat_inst, table_id, scan_data, strlen(scan_data),
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
int timeout = 1;
@@ -5695,6 +6624,11 @@ TEST_F(MaatCmdTest, SetExpr) {
ret = maat_scan_string(maat_inst, table_id, scan_data, strlen(scan_data),
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -5744,6 +6678,11 @@ TEST_F(MaatCmdTest, SetExpr8) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile_id);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
ret = expr_table_set_line(maat_inst, table_name, MAAT_OP_DEL, item_id,
@@ -5762,6 +6701,47 @@ TEST_F(MaatCmdTest, SetExpr8) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ maat_state_free(state);
+ state = NULL;
+}
+
+TEST_F(MaatCmdTest, MaatGroupScan) {
+ long long results[ARRAY_SIZE] = {0};
+ size_t n_hit_result = 0;
+ int thread_id = 0;
+ const char *table_name = "HTTP_URL";
+ const char *compile_table_name = "COMPILE_DEFAULT";
+ const char *g2c_table_name = "GROUP2COMPILE_DEFAULT";
+ struct maat *maat_inst = MaatCmdTest::_shared_maat_inst;
+ struct maat_state *state = maat_state_new(maat_inst, thread_id);
+
+ int table_id = maat_get_table_id(maat_inst, table_name);
+ ASSERT_GE(table_id, 0);
+
+ /* compile table add line */
+ long long compile_id = maat_cmd_incrby(maat_inst, "TEST_SEQ", 1);
+ int ret = compile_table_set_line(maat_inst, compile_table_name, MAAT_OP_ADD,
+ compile_id, "null", 1, 0);
+ EXPECT_EQ(ret, 1);
+
+ /* group2compile table add line */
+ long long group_id = maat_cmd_incrby(maat_inst, "SEQUENCE_GROUP", 1);
+ ret = group2compile_table_set_line(maat_inst, g2c_table_name, MAAT_OP_ADD,
+ group_id, compile_id, 0, table_name, 1, 0);
+ EXPECT_EQ(ret, 1);
+
+ sleep(WAIT_FOR_EFFECTIVE_S);
+
+ ret = maat_scan_group(maat_inst, table_id, &group_id, 1, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_HIT);
+ EXPECT_EQ(n_hit_result, 1);
+ EXPECT_EQ(results[0], compile_id);
+
maat_state_free(state);
state = NULL;
}
@@ -5813,6 +6793,10 @@ TEST_F(MaatCmdTest, SameFilterRefByOneCompile) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -5837,31 +6821,45 @@ TEST_F(MaatCmdTest, RuleIDRecycle) {
int ret = maat_scan_string(maat_inst, table_id, scan_data,
strlen(scan_data), results, ARRAY_SIZE,
&n_hit_result, state);
- maat_state_reset(state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], rule_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ maat_state_reset(state);
+
del_command(maat_inst, rule_id);
sleep(WAIT_FOR_EFFECTIVE_S);
ret = maat_scan_string(maat_inst, table_id, scan_data, strlen(scan_data),
results, ARRAY_SIZE, &n_hit_result, state);
- maat_state_reset(state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ maat_state_reset(state);
+
test_add_expr_command(maat_inst, table_name, rule_id, 0, keywords);
sleep(WAIT_FOR_EFFECTIVE_S);
memset(results, 0, sizeof(results));
ret = maat_scan_string(maat_inst, table_id, scan_data, strlen(scan_data),
results, ARRAY_SIZE, &n_hit_result, state);
- maat_state_free(state);
- state = NULL;
-
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], rule_id);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ maat_state_free(state);
+ state = NULL;
}
TEST_F(MaatCmdTest, ReturnRuleIDWithDescendingOrder) {
@@ -5893,12 +6891,17 @@ TEST_F(MaatCmdTest, ReturnRuleIDWithDescendingOrder) {
memset(results, 0, sizeof(results));
int ret = maat_scan_string(maat_inst, table_id, scan_data, strlen(scan_data),
results, ARRAY_SIZE, &n_hit_result, state);
- maat_state_free(state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, repeat_times);
for (i = 0; i < repeat_times; i++) {
EXPECT_EQ(results[i], expect_rule_id[repeat_times -i - 1]);
}
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ maat_state_free(state);
}
TEST_F(MaatCmdTest, SubGroup) {
@@ -5958,7 +6961,7 @@ TEST_F(MaatCmdTest, SubGroup) {
ret = expr_table_set_line(maat_inst, table_name, MAAT_OP_ADD, item_id,
group2_id, keyword1, NULL, 1, 0, 0, 0);/* EXPR_TYPE_AND MATCH_METHOD_SUB */
- sleep(4);
+ sleep(WAIT_FOR_EFFECTIVE_S * 2);
long long results[ARRAY_SIZE] = {0};
size_t n_hit_result = 0;
@@ -5968,6 +6971,11 @@ TEST_F(MaatCmdTest, SubGroup) {
EXPECT_EQ(n_hit_result, 2);
EXPECT_EQ(results[0], compile2_id);
EXPECT_EQ(results[1], compile1_id);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
/* item1 -> group2 -> group1 -> compile1
@@ -5984,6 +6992,11 @@ TEST_F(MaatCmdTest, SubGroup) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
/* item1 -> group2 -> group1 -> X
@@ -6001,12 +7014,17 @@ TEST_F(MaatCmdTest, SubGroup) {
group2_id, compile2_id, 0, table_name, 1, 0);
EXPECT_EQ(ret, 1);
- sleep(2);
+ sleep(WAIT_FOR_EFFECTIVE_S);
ret = maat_scan_string(maat_inst, table_id, scan_data1, strlen(scan_data1),
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile2_id);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
/* item1 -> group2 -> group1 -> X
@@ -6026,6 +7044,11 @@ TEST_F(MaatCmdTest, SubGroup) {
ret = maat_scan_string(maat_inst, table_id, scan_data2, strlen(scan_data2),
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
/* item1 -> group2 -> group1 -> X
@@ -6047,12 +7070,17 @@ TEST_F(MaatCmdTest, SubGroup) {
group1_id, compile1_id, 0, table_name, 1, 0);
EXPECT_EQ(ret, 1);
- sleep(2);
+ sleep(WAIT_FOR_EFFECTIVE_S);
ret = maat_scan_string(maat_inst, table_id, scan_data1, strlen(scan_data1),
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile2_id);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -6089,9 +7117,7 @@ TEST_F(MaatCmdTest, RefGroup) {
group1_id, keyword1, NULL, 1, 0, 0, 0); /* EXPR_TYPE_AND MATCH_METHOD_SUB */
EXPECT_EQ(ret, 1);
- //TODO: value=1 MAAT_OPT_ENABLE_UPDATE
- sleep(2);
- //TODO: value=0 MAAT_OPT_ENABLE_UPDATE
+ sleep(WAIT_FOR_EFFECTIVE_S);
/* item1 -> group1 -> X -> compile1
/
@@ -6121,9 +7147,7 @@ TEST_F(MaatCmdTest, RefGroup) {
group2_id, compile1_id, 0, table_name, 1, 0);
EXPECT_EQ(ret, 1);
- //TODO value=1 MAAT_OPT_ENABLE_UPDATE
-
- sleep(2);
+ sleep(WAIT_FOR_EFFECTIVE_S);
long long results[ARRAY_SIZE] = {0};
size_t n_hit_result = 0;
@@ -6132,6 +7156,11 @@ TEST_F(MaatCmdTest, RefGroup) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -6181,7 +7210,7 @@ TEST_F(MaatCmdTest, VirtualTable) {
group2_id, "uid=12345678;", "Cookie", 0, 0, 0, 0);/*EXPR_TYPE_STRING MATCH_METHOD_SUB */
EXPECT_EQ(ret, 1);
- sleep(2);
+ sleep(WAIT_FOR_EFFECTIVE_S);
const char* http_req_hdr_ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36";
@@ -6203,6 +7232,10 @@ TEST_F(MaatCmdTest, VirtualTable) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
table_id = maat_get_table_id(maat_inst, "HTTP_RESPONSE_HEADER");
ASSERT_GT(table_id, 0);
@@ -6216,6 +7249,11 @@ TEST_F(MaatCmdTest, VirtualTable) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
//delete group1
@@ -6229,7 +7267,8 @@ TEST_F(MaatCmdTest, VirtualTable) {
ret = compile_table_set_line(maat_inst, compile_table_name, MAAT_OP_ADD,
compile1_id, "null", 1, 0);
EXPECT_EQ(ret, 1);
- sleep(2);
+
+ sleep(WAIT_FOR_EFFECTIVE_S);
table_id = maat_get_table_id(maat_inst, "HTTP_RESPONSE_HEADER");
ASSERT_GT(table_id, 0);
@@ -6245,6 +7284,10 @@ TEST_F(MaatCmdTest, VirtualTable) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -7004,21 +8047,39 @@ TEST_F(MaatCmdTest, GroupInMassCompiles) {
results, 4, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, url_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_integer(maat_inst, appid_table_id, 100, results, 4,
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], target_compile_id);
+
+ ret = maat_scan_not_logic(maat_inst, appid_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
ret = maat_scan_string(maat_inst, url_table_id, http_url1, strlen(http_url1),
results, 4, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, url_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_integer(maat_inst, appid_table_id, 100, results, 4,
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 4);
+
+ ret = maat_scan_not_logic(maat_inst, appid_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -7145,6 +8206,10 @@ TEST_F(MaatCmdTest, HitGroup) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, http_req_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
size_t scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 1);
@@ -7180,6 +8245,10 @@ TEST_F(MaatCmdTest, HitGroup) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, http_res_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 2);
@@ -7222,6 +8291,11 @@ TEST_F(MaatCmdTest, HitGroup) {
ret = maat_scan_ipv4(maat_inst, ip_table_id, ip_addr, port, 6, results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, ip_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 4);
@@ -7370,6 +8444,10 @@ TEST_F(MaatCmdTest, HitPath) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, http_req_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
size_t scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 1);
@@ -7409,6 +8487,10 @@ TEST_F(MaatCmdTest, HitPath) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, http_res_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 2);
@@ -7463,6 +8545,10 @@ that the edges be all directed in the same direction.";
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, keywords_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 3);
@@ -7488,6 +8574,11 @@ that the edges be all directed in the same direction.";
ret = maat_scan_ipv4(maat_inst, ip_table_id, ip_addr, port, 6, results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, ip_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 4);
@@ -7507,6 +8598,11 @@ that the edges be all directed in the same direction.";
ret = maat_stream_scan(stream, keywords2, strlen(keywords2), results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, keywords_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 5);
@@ -7634,7 +8730,11 @@ TEST_F(MaatCmdTest, HitPathHasNotGroup) {
size_t n_hit_result = 0;
ret = maat_scan_string(maat_inst, http_req_table_id, http_url, strlen(http_url),
results, ARRAY_SIZE, &n_hit_result, state);
- EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, http_req_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
size_t scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 1);
@@ -7677,6 +8777,10 @@ TEST_F(MaatCmdTest, HitPathHasNotGroup) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, http_res_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 2);
@@ -7731,6 +8835,11 @@ TEST_F(MaatCmdTest, HitPathHasNotGroup) {
ret = maat_stream_scan(stream, keywords1, strlen(keywords1), results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, keywords_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 3);
@@ -7757,6 +8866,11 @@ TEST_F(MaatCmdTest, HitPathHasNotGroup) {
ret = maat_scan_ipv4(maat_inst, ip_table_id, ip_addr, port, 6, results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, ip_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 4);
@@ -7777,6 +8891,11 @@ TEST_F(MaatCmdTest, HitPathHasNotGroup) {
ret = maat_stream_scan(stream, keywords2, strlen(keywords2), results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, keywords_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
scan_count = maat_state_get_scan_count(state);
EXPECT_EQ(scan_count, 5);
@@ -7866,6 +8985,10 @@ TEST_F(MaatCmdTest, SameSuperGroupRefByMultiCompile) {
EXPECT_EQ(results[0], compile3_id);
EXPECT_EQ(results[1], compile2_id);
+ ret = maat_scan_not_logic(maat_inst, http_res_table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
memset(hit_path, 0, sizeof(hit_path));
int n_read = maat_state_get_hit_paths(state, hit_path, sizeof(hit_path));
EXPECT_EQ(n_read, 3);
@@ -7946,12 +9069,20 @@ TEST_F(MaatCmdTest, SameScanStatusWhenClauseUpdate_TSG6419) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
int scan_app_id = 32;
table_id = maat_get_table_id(maat_inst, app_id_table_name);
ret = maat_scan_integer(maat_inst, table_id, scan_app_id, results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
/* item11 -> group11 -> clause1 -> compile1
/
item21 -> group21 -> clause2 _/
@@ -7981,12 +9112,20 @@ TEST_F(MaatCmdTest, SameScanStatusWhenClauseUpdate_TSG6419) {
&n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = maat_scan_integer(maat_inst, table_id, scan_app_id, results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -8045,6 +9184,10 @@ TEST_F(MaatCmdTest, GroupEdit) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
table_id = maat_get_table_id(maat_inst, app_id_table_name);
ASSERT_GT(table_id, 0);
@@ -8052,6 +9195,11 @@ TEST_F(MaatCmdTest, GroupEdit) {
ret = maat_scan_integer(maat_inst, table_id, scan_app_id, results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
/* item11 -> group11 -> clause1 -> compile1
@@ -8082,6 +9230,10 @@ TEST_F(MaatCmdTest, GroupEdit) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
struct maat_hit_path hit_path[128];
memset(hit_path, 0, sizeof(hit_path));
@@ -8105,11 +9257,19 @@ TEST_F(MaatCmdTest, GroupEdit) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
table_id = maat_get_table_id(maat_inst, app_id_table_name);
ret = maat_scan_integer(maat_inst, table_id, scan_app_id, results,
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -8157,6 +9317,10 @@ TEST_F(MaatCmdTest, CompileDelete_TSG6548) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
ret = compile_table_set_line(maat_inst, compile_table_name, MAAT_OP_DEL,
compile1_id, "null", 1, 0);
EXPECT_EQ(ret, 1);
@@ -8229,6 +9393,10 @@ TEST_F(MaatCmdTest, UpdateDeadLockDetection) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
long long compile2_id = maat_cmd_incrby(maat_inst, "TEST_SEQ", 1);
ret = compile_table_set_line(maat_inst, compile_table_name, MAAT_OP_ADD,
compile2_id, "null", 1, 0);
@@ -8259,6 +9427,11 @@ TEST_F(MaatCmdTest, UpdateDeadLockDetection) {
results, ARRAY_SIZE, &n_hit_result, state);
//After full update, clause ids are re-orgnized, therefore mid are not compatible to the new scanner (hierarchy).
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -8296,6 +9469,10 @@ TEST_F(MaatCmdTest, StreamScanWhenExprTableIncUpdate) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
//item1 -> group1 -> compile1
long long item1_id = maat_cmd_incrby(maat_inst, "SEQUENCE_REGION", 1);
ret = expr_table_set_line(maat_inst, scan_table_name, MAAT_OP_ADD,
@@ -8312,6 +9489,10 @@ TEST_F(MaatCmdTest, StreamScanWhenExprTableIncUpdate) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_stream_free(stream);
stream = maat_stream_new(maat_inst, table_id, state);
@@ -8321,6 +9502,10 @@ TEST_F(MaatCmdTest, StreamScanWhenExprTableIncUpdate) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_stream_free(stream);
maat_state_free(state);
state = NULL;
@@ -8367,6 +9552,10 @@ TEST_F(MaatCmdTest, StreamScanSegfaultWhenVersionRollBack_TSG6324) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
//DON'T DO THIS!!!
//Roll back version, trigger full update.
//This operation generates FATAL logs in test_maat_redis.log.yyyy-mm-dd.
@@ -8380,6 +9569,10 @@ TEST_F(MaatCmdTest, StreamScanSegfaultWhenVersionRollBack_TSG6324) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_OK); //Scan was interupted after full update.
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_stream_free(stream);
maat_state_free(state);
state = NULL;
@@ -8445,6 +9638,10 @@ TEST_F(MaatCmdTest, IPAndStreamScanWhenIncUpdate) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
//add compile2 for compile runtime inc update
long long compile2_id = maat_cmd_incrby(maat_inst, "TEST_SEQ", 1);
ret = compile_table_set_line(maat_inst, compile_table_name, MAAT_OP_ADD,
@@ -8464,6 +9661,10 @@ TEST_F(MaatCmdTest, IPAndStreamScanWhenIncUpdate) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
/*
becase compile1_id has been returned, maat_scan_xx will not return duplicate compile_id again
*/
@@ -8473,6 +9674,10 @@ TEST_F(MaatCmdTest, IPAndStreamScanWhenIncUpdate) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_stream_free(stream);
maat_state_free(state);
state = NULL;
@@ -8539,6 +9744,10 @@ TEST_F(MaatCmdTest, IPAndStreamScanWhenFullUpdate) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
//DON'T DO THIS!!!
//Roll back version, trigger full update.
maat_cmd_incrby(maat_inst, "MAAT_VERSION", -100);
@@ -8555,6 +9764,10 @@ TEST_F(MaatCmdTest, IPAndStreamScanWhenFullUpdate) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
/* maat_state keep the compile_rt version when maat_state_new().
After full updating, new compile_rt version is different from that of maat_state,
so MAAT_SCAN_HIT will never happen.
@@ -8565,6 +9778,10 @@ TEST_F(MaatCmdTest, IPAndStreamScanWhenFullUpdate) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_stream_free(stream);
maat_state_free(state);
state = NULL;
@@ -8631,6 +9848,10 @@ TEST_F(MaatCmdTest, IPAndStringScanWhenIncUpdate) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
//add compile2 for compile runtime inc update
long long compile2_id = maat_cmd_incrby(maat_inst, "TEST_SEQ", 1);
ret = compile_table_set_line(maat_inst, compile_table_name, MAAT_OP_ADD,
@@ -8649,6 +9870,10 @@ TEST_F(MaatCmdTest, IPAndStringScanWhenIncUpdate) {
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], compile1_id);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
/*
becase compile1_id has been returned, maat_scan_xx will not return duplicate compile_id again
*/
@@ -8658,6 +9883,10 @@ TEST_F(MaatCmdTest, IPAndStringScanWhenIncUpdate) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -8723,6 +9952,10 @@ TEST_F(MaatCmdTest, IPAndStringScanWhenFullupdate) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
//DON'T DO THIS!!!
//Roll back version, trigger full update.
maat_cmd_incrby(maat_inst, "MAAT_VERSION", -100);
@@ -8738,6 +9971,10 @@ TEST_F(MaatCmdTest, IPAndStringScanWhenFullupdate) {
results, ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
/* maat_state keep the compile_rt version when maat_state_new().
After full updating, new compile_rt version is different from that of maat_state,
so MAAT_SCAN_HIT will never happen.
@@ -8749,6 +9986,10 @@ TEST_F(MaatCmdTest, IPAndStringScanWhenFullupdate) {
ARRAY_SIZE, &n_hit_result, state);
EXPECT_EQ(ret, MAAT_SCAN_HALF_HIT);
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -8766,7 +10007,7 @@ protected:
logger = log_handle_create("./maat_framework_gtest.log", 0);
int ret = write_config_to_redis(redis_ip, redis_port, redis_db, logger);
if (ret < 0) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] write config to redis failed.", __FUNCTION__, __LINE__);
}
@@ -8778,7 +10019,7 @@ protected:
_shared_maat_inst = maat_new(opts, table_info_path);
maat_options_free(opts);
if (NULL == _shared_maat_inst) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] create maat instance in MaatRollbackTest failed.",
__FUNCTION__, __LINE__);
}
@@ -8801,7 +10042,7 @@ static int clear_config_in_redis(redisContext *c, struct log_handle *logger)
redisReply *reply = maat_wrap_redis_command(c, "GET MAAT_VERSION");
if (reply != NULL) {
if (reply->type == REDIS_REPLY_NIL || reply->type == REDIS_REPLY_ERROR) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] GET MAAT_VERSION failed, maybe Redis is busy",
__FUNCTION__, __LINE__);
freeReplyObject(reply);
@@ -8809,7 +10050,7 @@ static int clear_config_in_redis(redisContext *c, struct log_handle *logger)
return -1;
}
} else {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] GET MAAT_VERSION failed with NULL reply, error: %s",
__FUNCTION__, __LINE__, c->errstr);
return -1;
@@ -8818,7 +10059,7 @@ static int clear_config_in_redis(redisContext *c, struct log_handle *logger)
redis_version = maat_read_redis_integer(reply);
if (redis_version < 0) {
if (reply->type == REDIS_REPLY_ERROR) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] Redis Communication error: %s",
__FUNCTION__, __LINE__, reply->str);
}
@@ -8871,7 +10112,7 @@ static int rollback_redis_version(redisContext *c, struct log_handle *logger)
{
redisReply *reply = maat_wrap_redis_command(c, "SET MAAT_VERSION 0");
if (NULL == reply) {
- log_error(logger, MODULE_FRAMEWORK_GTEST,
+ log_fatal(logger, MODULE_FRAMEWORK_GTEST,
"[%s:%d] set MAAT_VERSION failed, Redis Communication error: %s",
__FUNCTION__, __LINE__, c->errstr);
return -1;
@@ -8902,6 +10143,11 @@ TEST_F(MaatRollbackTest, FullConfigRollback) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 125);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
sleep(5);
@@ -8928,6 +10174,11 @@ TEST_F(MaatRollbackTest, FullConfigRollback) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 125);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}
@@ -8952,6 +10203,11 @@ TEST_F(MaatRollbackTest, FullConfigRollbackWhenScanUnfinished) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 125);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_reset(state);
sleep(5);
@@ -8978,6 +10234,11 @@ TEST_F(MaatRollbackTest, FullConfigRollbackWhenScanUnfinished) {
EXPECT_EQ(ret, MAAT_SCAN_HIT);
EXPECT_EQ(n_hit_result, 1);
EXPECT_EQ(results[0], 125);
+
+ ret = maat_scan_not_logic(maat_inst, table_id, results, ARRAY_SIZE,
+ &n_hit_result, state);
+ EXPECT_EQ(ret, MAAT_SCAN_OK);
+
maat_state_free(state);
state = NULL;
}