diff options
| author | liuwentan <[email protected]> | 2023-12-18 08:43:54 +0000 |
|---|---|---|
| committer | liuwentan <[email protected]> | 2023-12-18 08:43:54 +0000 |
| commit | b7d6eb16a1986c9b6fb077e6af81a06e87a5c603 (patch) | |
| tree | 66c0690444e12c06434d9d2e849a27ac9ef10385 /test | |
| parent | df7505fa7f4fe4e1c8ca719042caa67c7ab78bde (diff) | |
[FEATURE]add maat_get_table_schema_tag API => TSG-17872v4.1.21
Diffstat (limited to 'test')
| -rw-r--r-- | test/maat_framework_gtest.cpp | 154 | ||||
| -rw-r--r-- | test/table_info.conf | 11 |
2 files changed, 161 insertions, 4 deletions
diff --git a/test/maat_framework_gtest.cpp b/test/maat_framework_gtest.cpp index 3d07fc1..853e73e 100644 --- a/test/maat_framework_gtest.cpp +++ b/test/maat_framework_gtest.cpp @@ -5964,6 +5964,158 @@ TEST_F(VirtualTable, basic) { state = NULL; } +class TableSchemaTag : 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); + maat_options_set_hit_path_enabled(opts); + + _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 TableSchemaTag 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 *TableSchemaTag::_shared_maat_inst; +struct log_handle *TableSchemaTag::logger; + +TEST_F(TableSchemaTag, CompileTable) { + const char *compile1_table_name = "COMPILE_DEFAULT"; + const char *compile2_table_name = "COMPILE_ALIAS"; + const char *compile3_table_name = "COMPILE_CONJUNCTION"; + const char *g2c_table_name = "GROUP2COMPILE"; + struct maat *maat_inst = TableSchemaTag::_shared_maat_inst; + + //COMPILE_DEFAULT + int compile1_table_id = maat_get_table_id(maat_inst, compile1_table_name); + EXPECT_EQ(compile1_table_id, 0); + + const char *tag1 = maat_get_table_schema_tag(maat_inst, compile1_table_id); + EXPECT_TRUE(tag1 == NULL); + + //COMPILE_ALIAS + int compile2_table_id = maat_get_table_id(maat_inst, compile2_table_name); + EXPECT_EQ(compile2_table_id, 1); + + const char *tag2 = maat_get_table_schema_tag(maat_inst, compile2_table_id); + EXPECT_TRUE(tag2 != NULL); + + int ret = strcmp(tag2, "{\"compile_alias\": \"compile\"}"); + EXPECT_EQ(ret, 0); + + //COMPILE_CONJUNCTION + int compile3_table_id = maat_get_table_id(maat_inst, compile3_table_name); + EXPECT_EQ(compile3_table_id, 2); + + const char *tag3 = maat_get_table_schema_tag(maat_inst, compile3_table_id); + EXPECT_TRUE(tag3 != NULL); + + ret = strcmp(tag3, "{\"compile_conjunction\": \"compile\"}"); + EXPECT_EQ(ret, 0); + + //GROUP2COMPILE + int g2c_table_id = maat_get_table_id(maat_inst, g2c_table_name); + EXPECT_EQ(g2c_table_id, 3); + + const char *tag4 = maat_get_table_schema_tag(maat_inst, g2c_table_id); + EXPECT_TRUE(tag4 != NULL); + + ret = strcmp(tag4, "{\"group2compile\": \"group2compile\"}"); + EXPECT_EQ(ret, 0); + + //COMPILE_PLUGIN + const char *plugin_table_name = "COMPILE_PLUGIN"; + int plugin_table_id = maat_get_table_id(maat_inst, plugin_table_name); + EXPECT_EQ(plugin_table_id, 8); + + const char *tag5 = maat_get_table_schema_tag(maat_inst, plugin_table_id); + EXPECT_TRUE(tag5 != NULL); + + ret = strcmp(tag5, "{\"compile_plugin\": \"plugin\"}"); + EXPECT_EQ(ret, 0); + + //HTTP_REGION + const char *region_table_name = "HTTP_REGION"; + const char *url_table_name = "HTTP_URL"; + const char *host_table_name = "HTTP_HOST"; + + int region_table_id = maat_get_table_id(maat_inst, region_table_name); + EXPECT_EQ(region_table_id, 10); + + int url_table_id = maat_get_table_id(maat_inst, url_table_name); + EXPECT_EQ(url_table_id, 10); + + int host_table_id = maat_get_table_id(maat_inst, host_table_name); + EXPECT_EQ(host_table_id, 10); + + const char *tag6 = maat_get_table_schema_tag(maat_inst, region_table_id); + EXPECT_TRUE(tag6 != NULL); + + ret = strcmp(tag6, "{\"http_region\": \"expr\"}"); + EXPECT_EQ(ret, 0); + + //HTTP_RESPONSE_KEYWORDS + const char *vtable_name = "HTTP_RESPONSE_KEYWORDS"; + int vtable_id = maat_get_table_id(maat_inst, vtable_name); + EXPECT_EQ(vtable_id, 25); + + const char *tag7 = maat_get_table_schema_tag(maat_inst, vtable_id); + EXPECT_TRUE(tag7 != NULL); + + ret = strcmp(tag7, "{\"http_response_keywords\": \"virtual\"}"); + EXPECT_EQ(ret, 0); + + //VIRTUAL_IP_PLUS_TABLE + const char *vtable1_name = "VIRTUAL_IP_PLUS_TABLE"; + int vtable1_id = maat_get_table_id(maat_inst, vtable1_name); + EXPECT_EQ(vtable1_id, 28); + + const char *vtable2_name = "VIRTUAL_IP_PLUS_SOURCE"; + int vtable2_id = maat_get_table_id(maat_inst, vtable2_name); + EXPECT_EQ(vtable2_id, 28); + + const char *vtable3_name = "VIRTUAL_IP_PLUS_DESTINATION"; + int vtable3_id = maat_get_table_id(maat_inst, vtable3_name); + EXPECT_EQ(vtable3_id, 28); + + const char *tag8 = maat_get_table_schema_tag(maat_inst, vtable1_id); + EXPECT_TRUE(tag8 != NULL); + + ret = strcmp(tag8, "{\"virtual_ip_plus_table\": \"virtual\"}"); + EXPECT_EQ(ret, 0); +} + class CompileTable : public testing::Test { protected: @@ -6065,11 +6217,9 @@ TEST_F(CompileTable, CompileRuleUpdate) { MAAT_OP_ADD, compile_id, "null", 1, 0); EXPECT_EQ(ret, 1); - sleep(WAIT_FOR_EFFECTIVE_S); ret = compile_table_set_line(maat_inst, compile_table_name, MAAT_OP_DEL, compile_id, "null", 1, 0); EXPECT_EQ(ret, 1); - sleep(WAIT_FOR_EFFECTIVE_S); } TEST_F(CompileTable, Conjunction1) { diff --git a/test/table_info.conf b/test/table_info.conf index e16361e..01969dc 100644 --- a/test/table_info.conf +++ b/test/table_info.conf @@ -15,6 +15,7 @@ "table_name":"COMPILE_ALIAS", "table_type":"compile", "valid_column":9, + "schema_tag": "{\"compile_alias\": \"compile\"}", "custom": { "compile_id":1, "tags":6, @@ -28,6 +29,7 @@ "default_compile_table":2, "table_type":"compile", "valid_column":9, + "schema_tag": "{\"compile_conjunction\": \"compile\"}", "custom": { "compile_id":1, "tags":6, @@ -41,6 +43,7 @@ "table_type":"group2compile", "associated_compile_table_id":2, "valid_column":6, + "schema_tag": "{\"group2compile\": \"group2compile\"}", "custom": { "group_id":1, "compile_id":2, @@ -103,6 +106,7 @@ "db_tables":["COMPILE_DEFAULT", "COMPILE_ALIAS"], "table_type":"plugin", "valid_column":8, + "schema_tag": "{\"compile_plugin\": \"plugin\"}", "custom": { "gc_timeout_s":3, "key_type":"integer", @@ -130,6 +134,7 @@ "table_type":"expr", "expr_engine":"rulescan", "valid_column":7, + "schema_tag": "{\"http_region\": \"expr\"}", "custom": { "item_id":1, "group_id":2, @@ -340,7 +345,8 @@ "table_id":25, "table_name":"HTTP_RESPONSE_KEYWORDS", "table_type":"virtual", - "physical_table": "KEYWORDS_TABLE" + "physical_table": "KEYWORDS_TABLE", + "schema_tag": "{\"http_response_keywords\": \"virtual\"}" }, { "table_id":26, @@ -359,7 +365,8 @@ "table_name":"VIRTUAL_IP_PLUS_TABLE", "db_tables":["VIRTUAL_IP_PLUS_SOURCE", "VIRTUAL_IP_PLUS_DESTINATION"], "table_type":"virtual", - "physical_table": "IP_PLUS_CONFIG" + "physical_table": "IP_PLUS_CONFIG", + "schema_tag": "{\"virtual_ip_plus_table\": \"virtual\"}" }, { "table_id":29, |
