1.删除缓存测试无效代码

2.修改header链表结构为TQ
3,重构h2_half_ops_field_read,h2_half_ops_field_write等接口
This commit is contained in:
fengweihao
2019-05-31 10:21:40 +08:00
parent 5cdad62fc7
commit 4b64e5bfe1
8 changed files with 877 additions and 1155 deletions

View File

@@ -57,10 +57,10 @@ void UT_Parse_ReqHeaders(nghttp2_session *as_server)
{
int stream_id = 1;
struct h2_stream_data_t *h2_stream = (struct h2_stream_data_t *)nghttp2_session_get_stream_user_data(as_server, stream_id);
ASSERT_TRUE(h2_stream != NULL);
struct tfe_h2_session *h2_session = (struct tfe_h2_session *)nghttp2_session_get_stream_user_data(as_server, stream_id);
ASSERT_TRUE(h2_session != NULL);
struct http2_half_private *half_private_req = h2_stream->req;
struct tfe_h2_half_private *half_private_req = h2_session->req;
struct tfe_http_half *tfe_half = &half_private_req->half_public;
struct tfe_http_req_spec *req_spec = &tfe_half->req_spec;
@@ -124,10 +124,10 @@ void UT_Parse_RespHeaders(nghttp2_session *as_client)
{
int stream_id = 1;
struct h2_stream_data_t *h2_stream = (struct h2_stream_data_t *)nghttp2_session_get_stream_user_data(as_client, stream_id);
ASSERT_TRUE(h2_stream != NULL);
struct tfe_h2_session *h2_session = (struct tfe_h2_session *)nghttp2_session_get_stream_user_data(as_client, stream_id);
ASSERT_TRUE(h2_session != NULL);
struct http2_half_private *half_private_req = h2_stream->resp;
struct tfe_h2_half_private *half_private_req = h2_session->resp;
struct tfe_http_half *tfe_half = &half_private_req->half_public;
struct tfe_http_resp_spec *resp_spec = &tfe_half->resp_spec;
@@ -181,16 +181,16 @@ TEST(Http2StreamParser, GetFrameWithMagic)
struct stream_tap_info_t *tapinfo = ALLOC(struct stream_tap_info_t, 1);
assert(tapinfo);
tapinfo->session_info = tfe_session_info_init();
ASSERT_FALSE(tapinfo->session_info == NULL);
tapinfo->h2_stream_info = tfe_session_info_init();
ASSERT_FALSE(tapinfo->h2_stream_info == NULL);
struct tfe_session_info_t *session_info = tapinfo->session_info;
struct tfe_h2_stream *h2_stream_info = tapinfo->h2_stream_info;
/*Http2 protocol**/
EXPECT_EQ(memcmp(magic_headers, kMagicHello, MAGIC_FRAME_LENGTH), 0);
/*Recv data magic**/
readlen = nghttp2_session_mem_recv(session_info->as_server, magic_headers, sizeof(magic_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, magic_headers, sizeof(magic_headers));
EXPECT_GT(readlen, 0);
}
@@ -200,20 +200,20 @@ TEST(Http2StreamParser, GetFrameWithHeader_01)
struct stream_tap_info_t *tapinfo = ALLOC(struct stream_tap_info_t, 1);
assert(tapinfo);
tapinfo->session_info = tfe_session_info_init();
ASSERT_FALSE(tapinfo->session_info == NULL);
tapinfo->h2_stream_info = tfe_session_info_init();
ASSERT_FALSE(tapinfo->h2_stream_info == NULL);
struct tfe_session_info_t *session_info = tapinfo->session_info;
struct tfe_h2_stream *h2_stream_info = tapinfo->h2_stream_info;
/*Recv data magic**/
readlen = nghttp2_session_mem_recv(session_info->as_server, magic_headers, sizeof(magic_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, magic_headers, sizeof(magic_headers));
EXPECT_GT(readlen, 0);
/*Recv request Headers**/
readlen = nghttp2_session_mem_recv(session_info->as_server, request_get_headers, sizeof(request_get_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, request_get_headers, sizeof(request_get_headers));
EXPECT_GT(readlen, 0);
UT_Parse_ReqHeaders(session_info->as_server);
UT_Parse_ReqHeaders(h2_stream_info->as_server);
}
TEST(Http2StreamParser, GetFrameWithHeader_02)
@@ -222,22 +222,22 @@ TEST(Http2StreamParser, GetFrameWithHeader_02)
struct stream_tap_info_t *tapinfo = ALLOC(struct stream_tap_info_t, 1);
assert(tapinfo);
tapinfo->session_info = tfe_session_info_init();
ASSERT_FALSE(tapinfo->session_info == NULL);
tapinfo->h2_stream_info = tfe_session_info_init();
ASSERT_FALSE(tapinfo->h2_stream_info == NULL);
struct tfe_session_info_t *session_info = tapinfo->session_info;
struct tfe_h2_stream *h2_stream_info = tapinfo->h2_stream_info;
/*Recv data magic**/
readlen = nghttp2_session_mem_recv(session_info->as_server, magic_headers, sizeof(magic_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, magic_headers, sizeof(magic_headers));
EXPECT_GT(readlen, 0);
/*Recv request Headers**/
readlen = nghttp2_session_mem_recv(session_info->as_server, request_get_headers, sizeof(request_get_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, request_get_headers, sizeof(request_get_headers));
EXPECT_GT(readlen, 0);
/*Send data message**/
//enum tfe_stream_action stream_action = ACTION_FORWARD_DATA;
//stream_action = nghttp2_client_mem_send(session_info);
//stream_action = nghttp2_client_mem_send(h2_stream_info);
//EXPECT_EQ(stream_action, ACTION_DROP_DATA);
}
@@ -247,32 +247,32 @@ TEST(Http2StreamParser, RespFrameWithHead_01)
struct stream_tap_info_t *tapinfo = ALLOC(struct stream_tap_info_t, 1);
assert(tapinfo);
tapinfo->session_info = tfe_session_info_init();
ASSERT_FALSE(tapinfo->session_info == NULL);
tapinfo->h2_stream_info = tfe_session_info_init();
ASSERT_FALSE(tapinfo->h2_stream_info == NULL);
struct tfe_session_info_t *session_info = tapinfo->session_info;
struct tfe_h2_stream *h2_stream_info = tapinfo->h2_stream_info;
/*Recv data magic**/
readlen = nghttp2_session_mem_recv(session_info->as_server, magic_headers, sizeof(magic_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, magic_headers, sizeof(magic_headers));
EXPECT_GT(readlen, 0);
/*Recv request Headers**/
readlen = nghttp2_session_mem_recv(session_info->as_server, request_get_headers, sizeof(request_get_headers));
readlen = nghttp2_session_mem_recv(h2_stream_info->as_server, request_get_headers, sizeof(request_get_headers));
EXPECT_GT(readlen, 0);
/*Send data head message**/
//enum tfe_stream_action stream_action = ACTION_FORWARD_DATA;
//stream_action = nghttp2_client_mem_send(session_info);
//stream_action = nghttp2_client_mem_send(h2_stream_info);
//EXPECT_EQ(stream_action, ACTION_DROP_DATA);
/*Recv response settings*/
readlen = nghttp2_session_mem_recv(session_info->as_client, response_settings, sizeof(response_settings));
readlen = nghttp2_session_mem_recv(h2_stream_info->as_client, response_settings, sizeof(response_settings));
EXPECT_GT(readlen, 0);
/*Recv response Header*/
readlen = nghttp2_session_mem_recv(session_info->as_client, response_header2, sizeof(response_header2));
readlen = nghttp2_session_mem_recv(h2_stream_info->as_client, response_header2, sizeof(response_header2));
EXPECT_GT(readlen, 0);
UT_Parse_RespHeaders(session_info->as_client);
UT_Parse_RespHeaders(h2_stream_info->as_client);
}
#endif
@@ -291,18 +291,18 @@ TEST(Http2StreamParser, FrameWithJdData)
struct stream_tap_info_t *tapinfo = ALLOC(struct stream_tap_info_t, 1);
assert(tapinfo);
tapinfo->session_info = tfe_session_info_init();
ASSERT_FALSE(tapinfo->session_info == NULL);
tapinfo->h2_stream_info = tfe_session_info_init();
ASSERT_FALSE(tapinfo->h2_stream_info == NULL);
struct tfe_session_info_t *session_info = tapinfo->session_info;
struct tfe_h2_stream *h2_stream_info = tapinfo->h2_stream_info;
for (len = 0; len <= 7; len++){
if (len > 0 && len < 4){
printf("Proc down stream(%d)\n", len);
action = detect_down_stream_protocol(session_info, NULL, 0, data[len], datalen[len]);
action = detect_down_stream_protocol(h2_stream_info, NULL, 0, data[len], datalen[len]);
}else{
printf("Proc up stream(%d)\n", len);
action = detect_up_stream_protocol(session_info, NULL, 0, data[len], datalen[len]);
action = detect_up_stream_protocol(h2_stream_info, NULL, 0, data[len], datalen[len]);
}
}
}
@@ -310,12 +310,12 @@ TEST(Http2StreamParser, FrameWithJdData)
TEST(UI_TEST_INFLATE_GZIP, inflate_01)
{
char *uncompr = NULL;
struct data_t body;
struct tfe_h2_payload body;
int ret = 0, uncompr_len = 0;
memset(&body, 0, sizeof(struct data_t));
memset(&body, 0, sizeof(struct tfe_h2_payload));
ret = inflate_read(ut_gip_01, sizeof(ut_gip_01), &uncompr, &uncompr_len, &(body.inflater), 2);
ret = inflate_read(ut_gip_01, sizeof(ut_gip_01), &uncompr, &uncompr_len, &(body.inflate), 2);
EXPECT_EQ(ret, Z_STREAM_END);
EXPECT_EQ(uncompr_len, sizeof(ut_ungip_01));
@@ -327,19 +327,19 @@ TEST(UI_TEST_INFLATE_GZIP, inflate_01)
TEST(UI_TEST_INFLATE_GZIP, inflate_02)
{
struct data_t body;
struct tfe_h2_payload body;
int ret = 0, half = 0;
int size = sizeof(ut_gip_01);
half = size / 2;
body.inflater = NULL;
body.inflate = NULL;
char *uncompr1 = NULL; int uncompr_len1 = 0;
ret = inflate_read(ut_gip_01, half, &uncompr1, &uncompr_len1, &(body.inflater), 2);
ret = inflate_read(ut_gip_01, half, &uncompr1, &uncompr_len1, &(body.inflate), 2);
EXPECT_EQ(ret, Z_OK);
char *uncompr2 = NULL; int uncompr_len2 = 0;
ret = inflate_read(ut_gip_01 + half, size - half, &uncompr2, &uncompr_len2, &(body.inflater), 2);
ret = inflate_read(ut_gip_01 + half, size - half, &uncompr2, &uncompr_len2, &(body.inflate), 2);
EXPECT_EQ(ret, Z_STREAM_END);
char uncompr[1024] = {0};
@@ -356,12 +356,12 @@ TEST(UI_TEST_INFLATE_GZIP, inflate_02)
TEST(UI_TEST_DEFLATE_GZIP, deflate_01)
{
unsigned char *dest = NULL;
struct data_t body;
struct tfe_h2_payload body;
int ret = 0, dlen = 0;
struct evbuffer * buf = evbuffer_new();
int size = sizeof(ut_ungip_01);
memset(&body, 0, sizeof(struct data_t));
memset(&body, 0, sizeof(struct tfe_h2_payload));
ret = deflate_write(&(body.deflate), ut_ungip_01, size, buf, 2, 1);
EXPECT_EQ(ret, Z_OK);
@@ -371,7 +371,7 @@ TEST(UI_TEST_DEFLATE_GZIP, deflate_01)
char *uncompr = NULL;
int uncompr_len = 0;
ret = inflate_read(dest, dlen, &uncompr, &uncompr_len, &(body.inflater), 2);
ret = inflate_read(dest, dlen, &uncompr, &uncompr_len, &(body.inflate), 2);
EXPECT_EQ(ret, Z_STREAM_END);
EXPECT_EQ(uncompr_len, sizeof(ut_ungip_01));
EXPECT_EQ(memcmp(uncompr, ut_ungip_01, sizeof(ut_ungip_01)), 0);
@@ -383,7 +383,7 @@ TEST(UI_TEST_DEFLATE_GZIP, deflate_01)
TEST(UI_TEST_DEFLATE_GZIP, deflate_02)
{
struct data_t body;
struct tfe_h2_payload body;
unsigned char *dest = NULL;
int ret = 0, half = 0, dlen = 0;
@@ -392,7 +392,7 @@ TEST(UI_TEST_DEFLATE_GZIP, deflate_02)
struct evbuffer * buf = evbuffer_new();
memset(&body, 0, sizeof(struct data_t));
memset(&body, 0, sizeof(struct tfe_h2_payload));
/* First frag */
ret = deflate_write(&(body.deflate), ut_ungip_01, half, buf, 2, 0);
@@ -411,7 +411,7 @@ TEST(UI_TEST_DEFLATE_GZIP, deflate_02)
char *uncompr = NULL;
int uncompr_len = 0;
ret = inflate_read(dest, dlen, &uncompr, &uncompr_len, &(body.inflater), 2);
ret = inflate_read(dest, dlen, &uncompr, &uncompr_len, &(body.inflate), 2);
EXPECT_EQ(ret, Z_STREAM_END);
EXPECT_EQ(uncompr_len, sizeof(ut_ungip_01));
EXPECT_EQ(memcmp(uncompr, ut_ungip_01, sizeof(ut_ungip_01)), 0);
@@ -424,12 +424,12 @@ TEST(UI_TEST_DEFLATE_GZIP, deflate_02)
TEST(UI_TEST_DEFLATE_BR, deflate_01)
{
unsigned char *dest = NULL;
struct data_t body;
struct tfe_h2_payload body;
int ret = 0, dlen = 0;
struct evbuffer * buf = evbuffer_new();
int size = sizeof(ut_ungip_01);
memset(&body, 0, sizeof(struct data_t));
memset(&body, 0, sizeof(struct tfe_h2_payload));
ret = deflate_write(&(body.deflate), ut_ungip_01, size, buf, HTTP2_CONTENT_ENCODING_BR, 1);
EXPECT_EQ(ret, Z_OK);
@@ -439,7 +439,7 @@ TEST(UI_TEST_DEFLATE_BR, deflate_01)
char *uncompr = NULL;
int uncompr_len = 0;
ret = inflate_read(dest, dlen, &uncompr, &uncompr_len, &(body.inflater), HTTP2_CONTENT_ENCODING_BR);
ret = inflate_read(dest, dlen, &uncompr, &uncompr_len, &(body.inflate), HTTP2_CONTENT_ENCODING_BR);
EXPECT_EQ(ret, Z_STREAM_END);
EXPECT_EQ(uncompr_len, sizeof(ut_ungip_01));
EXPECT_EQ(memcmp(uncompr, ut_ungip_01, sizeof(ut_ungip_01)), 0);
@@ -451,7 +451,7 @@ TEST(UI_TEST_DEFLATE_BR, deflate_01)
TEST(UI_TEST_DEFLATE_BR, deflate_02)
{
struct data_t body;
struct tfe_h2_payload body;
unsigned char *dest = NULL;
int ret = 0, half = 0, dlen = 0;
@@ -460,7 +460,7 @@ TEST(UI_TEST_DEFLATE_BR, deflate_02)
struct evbuffer * buf = evbuffer_new();
memset(&body, 0, sizeof(struct data_t));
memset(&body, 0, sizeof(struct tfe_h2_payload));
/* First frag */
ret = deflate_write(&(body.deflate), ut_ungip_01, half, buf, HTTP2_CONTENT_ENCODING_BR, 0);
@@ -479,7 +479,7 @@ TEST(UI_TEST_DEFLATE_BR, deflate_02)
char *uncompr = NULL;
int uncompr_len = 0;
ret = inflate_read(dest, dlen, &uncompr, &uncompr_len, &(body.inflater), HTTP2_CONTENT_ENCODING_BR);
ret = inflate_read(dest, dlen, &uncompr, &uncompr_len, &(body.inflate), HTTP2_CONTENT_ENCODING_BR);
EXPECT_EQ(ret, Z_STREAM_END);
EXPECT_EQ(uncompr_len, sizeof(ut_ungip_01));
EXPECT_EQ(memcmp(uncompr, ut_ungip_01, sizeof(ut_ungip_01)), 0);