集成GZIP压缩模块,支持对GZIP压缩的应答执行替换业务,并增加了单元测试用例。

This commit is contained in:
Lu Qiuwen
2018-09-28 15:43:02 +08:00
parent a14b665f90
commit 20c55b74d8
3 changed files with 83 additions and 3 deletions

View File

@@ -262,7 +262,7 @@ TEST_F(HttpConvertCompress, MonkeyToGzip)
EXPECT_EQ(memcmp(uncompress_buf.data(), monkey, sizeof(monkey)), 0);
}
TEST_F(HttpConvertCompress, MonkeyToGzipStrem)
TEST_F(HttpConvertCompress, MonkeyToGzipStream)
{
unsigned frag_length = sizeof(monkey) / 2;
@@ -286,6 +286,34 @@ TEST_F(HttpConvertCompress, MonkeyToGzipStrem)
EXPECT_EQ(memcmp(uncompress_buf.data(), monkey, sizeof(monkey)), 0);
}
TEST_F(HttpConvertCompress, MonkeyToGzipStreamWithNullEnd)
{
unsigned frag_length = sizeof(monkey) / 2;
/* First frag */
int ret = hf_content_compress_write(cv_compress_object, monkey, frag_length, buf, 0);
ASSERT_EQ(ret, 0);
/* Last frag */
ret = hf_content_compress_write(cv_compress_object, monkey + frag_length, sizeof(monkey) - frag_length, buf, 0);
ASSERT_EQ(ret, 0);
/* End frag */
ret = hf_content_compress_write(cv_compress_object, NULL, 0, buf, 1);
ASSERT_EQ(ret, 0);
unsigned char * __raw_buf_ptr = evbuffer_pullup(buf, -1);
size_t __raw_buf_length = evbuffer_get_length(buf);
ret = hf_content_uncompress_write(cv_uncompress_object, NULL, EV_HTTP_REQ_BODY_CONT,
__raw_buf_ptr, __raw_buf_length);
ASSERT_TRUE(__raw_buf_ptr != NULL);
ASSERT_EQ(ret, 1);
EXPECT_EQ(uncompress_buf.size(), sizeof(monkey));
EXPECT_EQ(memcmp(uncompress_buf.data(), monkey, sizeof(monkey)), 0);
}
void tfe_stream_write_access_log(const struct tfe_stream * stream, int level, const char * fmt, ...)
{
return;