TSG-13421: 不再处理UNCATEGORIZED=8000的识别结果,保证Application Full Path填充为空,增加gtest测试用例

This commit is contained in:
刘学利
2023-02-07 09:33:49 +00:00
parent ccf02881fa
commit 6756fcdf7a
7 changed files with 83 additions and 13 deletions

View File

@@ -144,24 +144,50 @@ int stream_bridge_build(const char * bridge_name, const char * rw_mode)
return bridge_id++;
}
#define MAX_PROJECT_NUM 16
static int project_id=0;
const void *g_project_data[MAX_PROJECT_NUM]={0};
project_req_free_t *g_project_free[MAX_PROJECT_NUM]={0};
char g_project_label[MAX_PROJECT_NUM][32]={0};
int project_req_add_struct(struct streaminfo *stream, int project_req_id, const void *project_req_value)
{
g_project_data[project_req_id]=project_req_value;
return 0;
}
const void *project_req_get_struct(const struct streaminfo *stream, int project_req_id)
{
return NULL;
return g_project_data[project_req_id];
}
int project_customer_register(const char * project_req_name, const char * project_req_val_type)
{
return 0;
for(int i=0; i<project_id; i++)
{
if(memcmp(g_project_label[i], project_req_name, strlen(project_req_name))==0)
{
return i;
}
}
return -1;
}
int project_producer_register(const char * project_req_name, const char * project_req_val_type, project_req_free_t * free_cb)
{
return 0;
assert(project_id<MAX_PROJECT_NUM);
for(int i=0; i<project_id; i++)
{
if(memcmp(g_project_label[i], project_req_name, strlen(project_req_name))==0)
{
return project_id;
}
}
g_project_free[project_id]=free_cb;
memcpy(g_project_label[project_id], project_req_name, strlen(project_req_name));
return project_id++;
}
extern "C" void *http_field_parser(const char* buf, unsigned int buflen, int http_dir)

View File

@@ -6,5 +6,7 @@ extern "C" int TSG_MASTER_INIT();
void free_shaping_result(const struct streaminfo *stream, int bridge_id, void *data);
int TLD_convert_json(struct TLD_handle_t *_handle, char *buff, unsigned int buff_len);
int set_app_id(struct tsg_log_instance_t *_instance, struct TLD_handle_t *_handle, struct streaminfo *a_stream);
int set_shaping_rule_ids(struct tsg_log_instance_t *_instance, struct TLD_handle_t *_handle, struct streaminfo *a_stream);

View File

@@ -7,6 +7,48 @@
#include "tsg_entry.h"
#include <gtest/gtest.h>
TEST(TSGMaster, SetAPPIDHttp)
{
struct streaminfo a_stream={0};
struct gather_app_result gather_result[ORIGIN_MAX]={0};
gather_result[ORIGIN_BASIC_PROTOCOL].app_num=1;
gather_result[ORIGIN_BASIC_PROTOCOL].origin=ORIGIN_BASIC_PROTOCOL;
gather_result[ORIGIN_BASIC_PROTOCOL].attributes[0].app_id=67; //HTTP
project_req_add_struct(&a_stream, g_tsg_para.gather_app_project_id, (const void *)gather_result);
struct gather_app_result *get_result=(struct gather_app_result *)project_req_get_struct(&a_stream, g_tsg_para.gather_app_project_id);
EXPECT_NE(nullptr, get_result);
EXPECT_EQ(1, get_result[ORIGIN_BASIC_PROTOCOL].app_num);
EXPECT_EQ(67, get_result[ORIGIN_BASIC_PROTOCOL].attributes[0].app_id);
EXPECT_EQ(0, get_result[ORIGIN_BASIC_PROTOCOL].attributes[0].packet_sequence);
EXPECT_EQ(0, get_result[ORIGIN_BASIC_PROTOCOL].attributes[0].surrogate_id);
EXPECT_EQ(ORIGIN_BASIC_PROTOCOL, get_result[ORIGIN_BASIC_PROTOCOL].origin);
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\"}", app_ids);
project_req_add_struct(&a_stream, g_tsg_para.gather_app_project_id, NULL);
get_result=(struct gather_app_result *)project_req_get_struct(&a_stream, g_tsg_para.gather_app_project_id);
EXPECT_EQ(nullptr, get_result);
}
TEST(TSGMaster, SetAPPIDUnknown)
{
struct streaminfo a_stream={0};
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\":\"unknown\",\"common_app_label\":\"unknown\"}", app_ids);
}
TEST(TSGMaster, ShapingSetRuleIds)
{
const struct streaminfo a_stream={0};