support expr offset match
This commit is contained in:
@@ -9,14 +9,23 @@
|
||||
|
||||
const char *table_info_path = "./table_info.conf";
|
||||
const char *json_filename = "maat_json.json";
|
||||
struct log_handle *g_logger = NULL;
|
||||
|
||||
#if 0
|
||||
TEST(json_mode, maat_scan_string) {
|
||||
char tmp_iris_path[128] = {0};
|
||||
char json_iris_path[128] = {0};
|
||||
snprintf(json_iris_path, sizeof(json_iris_path), "./%s_iris_tmp", json_filename);
|
||||
|
||||
if ((access(json_iris_path, F_OK)) == 0) {
|
||||
system_cmd_rmdir(json_iris_path);
|
||||
if (access(json_iris_path, F_OK) < 0) {
|
||||
char *json_buff = NULL;
|
||||
size_t json_buff_sz = 0;
|
||||
|
||||
int ret = load_file_to_memory(json_filename, (unsigned char**)&json_buff, &json_buff_sz);
|
||||
EXPECT_NE(ret, -1);
|
||||
|
||||
ret = json2iris(json_buff, json_filename, NULL, tmp_iris_path, sizeof(tmp_iris_path),
|
||||
NULL, NULL, g_logger);
|
||||
EXPECT_NE(ret, -1);
|
||||
}
|
||||
|
||||
struct maat_options *opts = maat_options_new();
|
||||
@@ -29,14 +38,15 @@ TEST(json_mode, maat_scan_string) {
|
||||
|
||||
int table_id = table_manager_get_table_id(maat_instance->tbl_mgr, "KEYWORDS_TABLE");
|
||||
|
||||
char scan_data[128] = "Batman\\:Take me Home.Superman/:Fine,stay with me.";
|
||||
char scan_data[128] = "string1, string2, string3, string4, string5, string6, string7, string8";
|
||||
int results[5] = {0};
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
int ret = maat_scan_string(maat_instance, table_id, 0, scan_data, strlen(scan_data), results, sizeof(results), &n_hit_result, &state);
|
||||
int ret = maat_scan_string(maat_instance, table_id, 0, scan_data, strlen(scan_data),
|
||||
results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, MAAT_SCAN_HIT);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 132);
|
||||
EXPECT_EQ(results[0], 182);
|
||||
|
||||
maat_options_free(opts);
|
||||
maat_state_free(&state);
|
||||
@@ -48,14 +58,15 @@ TEST(iris_mode, maat_scan_string) {
|
||||
char json_iris_path[128] = {0};
|
||||
snprintf(json_iris_path, sizeof(json_iris_path), "./%s_iris_tmp", json_filename);
|
||||
|
||||
if ((access(json_iris_path, F_OK)) < 0) {
|
||||
if (access(json_iris_path, F_OK) < 0) {
|
||||
char *json_buff = NULL;
|
||||
size_t json_buff_sz = 0;
|
||||
|
||||
int ret = load_file_to_memory(json_filename, (unsigned char**)&json_buff, &json_buff_sz);
|
||||
EXPECT_NE(ret, -1);
|
||||
|
||||
ret = json2iris(json_buff, json_filename, NULL, tmp_iris_path, sizeof(tmp_iris_path), NULL, NULL, NULL);
|
||||
ret = json2iris(json_buff, json_filename, NULL, tmp_iris_path, sizeof(tmp_iris_path),
|
||||
NULL, NULL, g_logger);
|
||||
EXPECT_NE(ret, -1);
|
||||
}
|
||||
|
||||
@@ -72,20 +83,21 @@ TEST(iris_mode, maat_scan_string) {
|
||||
|
||||
int table_id = table_manager_get_table_id(maat_instance->tbl_mgr, "KEYWORDS_TABLE");
|
||||
|
||||
char scan_data[128] = "Batman\\:Take me Home.Superman/:Fine,stay with me.";
|
||||
char scan_data[128] = "string1, string2, string3, string4, string5, string6, string7, string8";
|
||||
int results[5] = {0};
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
int ret = maat_scan_string(maat_instance, table_id, 0, scan_data, strlen(scan_data), results, sizeof(results), &n_hit_result, &state);
|
||||
int ret = maat_scan_string(maat_instance, table_id, 0, scan_data, strlen(scan_data),
|
||||
results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, MAAT_SCAN_HIT);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 132);
|
||||
EXPECT_EQ(results[0], 182);
|
||||
|
||||
maat_options_free(opts);
|
||||
maat_state_free(&state);
|
||||
maat_free(maat_instance);
|
||||
}
|
||||
#endif
|
||||
|
||||
int count_line_num_cb(const char *table_name, const char *line, void *u_para)
|
||||
{
|
||||
(*((unsigned int *)u_para))++;
|
||||
@@ -132,25 +144,21 @@ int make_serial_rule(const char *table_name, const char *line, void *u_para)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#if 1
|
||||
TEST(redis_mode, maat_scan_string) {
|
||||
char json_iris_path[128] = {0};
|
||||
char redis_ip[64] = "127.0.0.1";
|
||||
int redis_port = 6379;
|
||||
int redis_db = 0;
|
||||
|
||||
struct log_handle *logger = log_handle_create("./tmp.log", 0);
|
||||
|
||||
snprintf(json_iris_path, sizeof(json_iris_path), "./%s_iris_tmp", json_filename);
|
||||
|
||||
redisContext *c = maat_cmd_connect_redis(redis_ip, redis_port, redis_db, logger);
|
||||
redisContext *c = maat_cmd_connect_redis(redis_ip, redis_port, redis_db, g_logger);
|
||||
EXPECT_NE(c, nullptr);
|
||||
|
||||
redisReply *reply = maat_cmd_wrap_redis_command(c, "flushdb");
|
||||
EXPECT_NE(reply, nullptr);
|
||||
|
||||
if ((access(json_iris_path, F_OK)) < 0) {
|
||||
if (access(json_iris_path, F_OK) < 0) {
|
||||
char tmp_iris_path[128] = {0};
|
||||
char *json_buff = NULL;
|
||||
size_t json_buff_sz = 0;
|
||||
@@ -158,25 +166,27 @@ TEST(redis_mode, maat_scan_string) {
|
||||
int ret = load_file_to_memory(json_filename, (unsigned char **)&json_buff, &json_buff_sz);
|
||||
EXPECT_NE(ret, -1);
|
||||
|
||||
ret = json2iris(json_buff, json_filename, c, tmp_iris_path, sizeof(tmp_iris_path), NULL, NULL, logger);
|
||||
ret = json2iris(json_buff, json_filename, c, tmp_iris_path, sizeof(tmp_iris_path),
|
||||
NULL, NULL, g_logger);
|
||||
EXPECT_NE(ret, -1);
|
||||
}
|
||||
|
||||
size_t total_line_cnt = 0;
|
||||
char tmp_iris_full_idx_path[128] = {0};
|
||||
snprintf(tmp_iris_full_idx_path, sizeof(tmp_iris_full_idx_path), "%s/index", json_iris_path);
|
||||
config_monitor_traverse(0, tmp_iris_full_idx_path, NULL, count_line_num_cb, NULL, &total_line_cnt, logger);
|
||||
config_monitor_traverse(0, tmp_iris_full_idx_path, NULL, count_line_num_cb, NULL,
|
||||
&total_line_cnt, g_logger);
|
||||
|
||||
struct serial_rule *s_rule = ALLOC(struct serial_rule, total_line_cnt);
|
||||
long long server_time = maat_cmd_redis_server_time_s(c);
|
||||
EXPECT_NE(server_time, -1);
|
||||
|
||||
absolute_expire_time = server_time + 300;
|
||||
config_monitor_traverse(0, tmp_iris_full_idx_path, NULL, make_serial_rule, NULL, s_rule, logger);
|
||||
|
||||
config_monitor_traverse(0, tmp_iris_full_idx_path, NULL, make_serial_rule, NULL,
|
||||
s_rule, g_logger);
|
||||
int success_cnt = 0;
|
||||
do {
|
||||
success_cnt = maat_cmd_write_rule(c, s_rule, total_line_cnt, server_time, logger);
|
||||
success_cnt = maat_cmd_write_rule(c, s_rule, total_line_cnt, server_time, g_logger);
|
||||
} while (success_cnt < 0);
|
||||
|
||||
EXPECT_EQ(success_cnt, (int)total_line_cnt);
|
||||
@@ -189,30 +199,40 @@ TEST(redis_mode, maat_scan_string) {
|
||||
|
||||
struct maat_options *opts = maat_options_new();
|
||||
maat_options_set_redis(opts, redis_ip, redis_port, redis_db);
|
||||
maat_options_set_logger(opts, logger);
|
||||
maat_options_set_logger(opts, g_logger);
|
||||
|
||||
struct maat *maat_instance = maat_new(opts, table_info_path);
|
||||
int table_id = table_manager_get_table_id(maat_instance->tbl_mgr, "KEYWORDS_TABLE");
|
||||
|
||||
char scan_data[128] = "Batman\\:Take me Home.Superman/:Fine,stay with me.";
|
||||
char scan_data[128] = "string1, string2, string3, string4, string5, string6, string7, string8";
|
||||
int results[5] = {0};
|
||||
size_t n_hit_result = 0;
|
||||
struct maat_state *state = NULL;
|
||||
int ret = maat_scan_string(maat_instance, table_id, 0, scan_data, strlen(scan_data), results, sizeof(results), &n_hit_result, &state);
|
||||
int ret = maat_scan_string(maat_instance, table_id, 0, scan_data, strlen(scan_data),
|
||||
results, sizeof(results), &n_hit_result, &state);
|
||||
EXPECT_EQ(ret, MAAT_SCAN_HIT);
|
||||
EXPECT_EQ(n_hit_result, 1);
|
||||
EXPECT_EQ(results[0], 132);
|
||||
EXPECT_EQ(results[0], 182);
|
||||
|
||||
maat_options_free(opts);
|
||||
maat_state_free(&state);
|
||||
log_handle_destroy(maat_instance->logger);
|
||||
maat_free(maat_instance);
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(int argc, char ** argv)
|
||||
{
|
||||
int ret=0;
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
g_logger = log_handle_create("./input_mode_gtest.log", 0);
|
||||
|
||||
char json_iris_path[128] = {0};
|
||||
snprintf(json_iris_path, sizeof(json_iris_path), "./%s_iris_tmp", json_filename);
|
||||
if ((access(json_iris_path, F_OK)) == 0) {
|
||||
system_cmd_rmdir(json_iris_path);
|
||||
}
|
||||
|
||||
ret=RUN_ALL_TESTS();
|
||||
|
||||
log_handle_destroy(g_logger);
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user