优化存储application的空间

This commit is contained in:
liuxueli
2023-06-12 15:42:46 +08:00
parent 3dea0f5399
commit 03b39fc314
8 changed files with 452 additions and 349 deletions

View File

@@ -414,14 +414,38 @@ extern void session_gather_app_results_free(const struct streaminfo *a_stream, i
TEST(TSG_Bridge, GatherAppResultAsync)
{
const struct streaminfo a_stream = {0};
struct gather_app_result *gather_result = (struct gather_app_result *)dictator_malloc(a_stream.threadnum, sizeof(struct gather_app_result));
gather_result->app_num = 1003;
session_gather_app_results_async(&a_stream, (void *)gather_result);
struct gather_app_result *test = (struct gather_app_result *)session_gather_app_results_get(&a_stream);
EXPECT_EQ(test, gather_result);
EXPECT_EQ(test->app_num, 1003);
session_gather_app_results_free(&a_stream, g_tm_bridge_para[BRIDGE_TYPE_GATHER_APP_RESULT].id, (void *)test);
struct gather_app_result *gather_result_in = (struct gather_app_result *)dictator_malloc(a_stream.threadnum, sizeof(struct gather_app_result));
memset(gather_result_in, 0, sizeof(struct gather_app_result));
gather_result_in->unknown_flag = 1;
gather_result_in->unknown.app_id=4;
gather_result_in->unknown.surrogate_id=0;
gather_result_in->unknown.packet_sequence=40;
session_gather_app_results_async(&a_stream, (void *)gather_result_in);
struct gather_app_result *gather_result_out = (struct gather_app_result *)session_gather_app_results_get(&a_stream);
EXPECT_NE(nullptr, gather_result_out);
EXPECT_EQ(gather_result_out->unknown_flag, 1);
EXPECT_EQ(gather_result_out->unknown.app_id, 4);
EXPECT_EQ(gather_result_out->unknown.surrogate_id, 0);
EXPECT_EQ(gather_result_out->unknown.packet_sequence, 40);
EXPECT_EQ(gather_result_out->matched_app_flag, 0);
EXPECT_EQ(gather_result_out->l7_protocol_num, 0);
EXPECT_EQ(gather_result_out->l7_qm_engine_num, 0);
EXPECT_EQ(gather_result_out->qm_engine_num, 0);
EXPECT_EQ(gather_result_out->user_define_num, 0);
EXPECT_EQ(gather_result_out->built_in_num, 0);
EXPECT_EQ(nullptr, gather_result_out->built_in);
EXPECT_EQ(nullptr, gather_result_out->l7_protocol);
EXPECT_EQ(nullptr, gather_result_out->qm_engine);
EXPECT_EQ(nullptr, gather_result_out->user_define);
session_gather_app_results_free(&a_stream, g_tm_bridge_para[BRIDGE_TYPE_GATHER_APP_RESULT].id, (void *)gather_result_out);
session_gather_app_results_async(&a_stream, NULL);
EXPECT_EQ(nullptr, session_gather_app_results_get(&a_stream));
}
static void tsg_bridge_test_init_attribute(const struct streaminfo *a_stream, struct session_runtime_attribute *attribute)

View File

@@ -20,6 +20,11 @@ void *dictator_malloc(int thread_seq,size_t size)
return calloc(1, size);
}
void *dictator_realloc(int thread_seq, void * pbuf, size_t size)
{
return realloc(pbuf, size);
}
const char *printaddr (const struct layer_addr *paddrinfo, int threadindex)
{
return gtest_addrlist;

View File

@@ -20,31 +20,32 @@ extern void session_segment_id_free(const struct streaminfo * a_stream, int brid
TEST(TSGMaster, SetAPPIDHttp)
{
const struct streaminfo a_stream={0};
struct gather_app_result async_gather_result[ORIGIN_MAX]={0};
async_gather_result[ORIGIN_BASIC_PROTOCOL].app_num=1;
async_gather_result[ORIGIN_BASIC_PROTOCOL].origin=ORIGIN_BASIC_PROTOCOL;
async_gather_result[ORIGIN_BASIC_PROTOCOL].attributes[0].app_id=67; //HTTP
struct gather_app_result *gather_result_in=(struct gather_app_result *)dictator_malloc(0, sizeof(struct gather_app_result));
memset(gather_result_in, 0, sizeof(struct gather_app_result));
session_gather_app_results_async(&a_stream, (void *)async_gather_result);
struct gather_app_result *gather_result=(struct gather_app_result *)session_gather_app_results_get(&a_stream);
EXPECT_NE(nullptr, gather_result);
EXPECT_EQ(1, gather_result[ORIGIN_BASIC_PROTOCOL].app_num);
EXPECT_EQ(67, gather_result[ORIGIN_BASIC_PROTOCOL].attributes[0].app_id);
EXPECT_EQ(0, gather_result[ORIGIN_BASIC_PROTOCOL].attributes[0].packet_sequence);
EXPECT_EQ(0, gather_result[ORIGIN_BASIC_PROTOCOL].attributes[0].surrogate_id);
EXPECT_EQ(ORIGIN_BASIC_PROTOCOL, gather_result[ORIGIN_BASIC_PROTOCOL].origin);
gather_result_in->l7_protocol_num=1;
gather_result_in->l7_protocol=(struct app_attributes *)dictator_malloc(0, sizeof(struct app_attributes));
gather_result_in->l7_protocol[0].app_id=67; //HTTP
gather_result_in->l7_protocol[0].surrogate_id=0; //HTTP
gather_result_in->l7_protocol[0].packet_sequence=1; //HTTP
session_gather_app_results_async(&a_stream, (void *)gather_result_in);
struct gather_app_result *gather_result_out=(struct gather_app_result *)session_gather_app_results_get(&a_stream);
EXPECT_NE(nullptr, gather_result_out);
EXPECT_EQ(1, gather_result_out->l7_protocol_num);
EXPECT_EQ(67, gather_result_out->l7_protocol[0].app_id);
EXPECT_EQ(0, gather_result_out->l7_protocol[0].surrogate_id);
EXPECT_EQ(1, gather_result_out->l7_protocol[0].packet_sequence);
struct TLD_handle_t *handle=TLD_create(0);
set_app_id(g_tsg_log_instance, handle, (struct streaminfo *)&a_stream);
char app_ids[256]={0};
TLD_convert_json(handle, app_ids, sizeof(app_ids));
EXPECT_STREQ("{\"common_app_full_path\":\"http\",\"common_app_label\":\"http\",\"common_app_id\":{\"LPI_L7\":[{\"app_name\":\"http\",\"app_id\":67,\"surrogate_id\":0,\"packet_sequence\":0}]}}", app_ids);
EXPECT_STREQ("{\"common_app_full_path\":\"http\",\"common_app_label\":\"http\",\"common_app_id\":{\"LPI_L7\":[{\"app_name\":\"http\",\"app_id\":67,\"surrogate_id\":0,\"packet_sequence\":1}]}}", app_ids);
dictator_free(0, gather_result_out);
session_gather_app_results_async(&a_stream, NULL);
gather_result=(struct gather_app_result *)session_gather_app_results_get(&a_stream);
EXPECT_EQ(nullptr, gather_result);
EXPECT_EQ(nullptr, session_gather_app_results_get(&a_stream));
}
TEST(TSGMaster, SetAPPIDUnknown)
@@ -989,11 +990,11 @@ TEST(TSGMaster, SessionDealStatePending)
struct gather_app_result *gather_result=(struct gather_app_result *)session_gather_app_results_get(&a_stream);
EXPECT_NE(nullptr, gather_result);
EXPECT_EQ(1, gather_result[ORIGIN_BASIC_PROTOCOL].app_num);
EXPECT_EQ(45, gather_result[ORIGIN_BASIC_PROTOCOL].attributes[0].app_id);
EXPECT_EQ(0, gather_result[ORIGIN_BASIC_PROTOCOL].attributes[0].surrogate_id);
EXPECT_EQ(1, gather_result->l7_protocol_num);
EXPECT_EQ(45, gather_result->l7_protocol[0].app_id);
EXPECT_EQ(0, gather_result->l7_protocol[0].surrogate_id);
free(gather_result);
dictator_free(0, gather_result);
session_gather_app_results_async(&a_stream, NULL);
EXPECT_EQ(nullptr, session_gather_app_results_get(&a_stream));