Skip to content

Commit 2687b38

Browse files
committed
tests: internal: gzip: add test for concatenated decomp data
Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
1 parent 3f4a024 commit 2687b38

File tree

1 file changed

+40
-2
lines changed

1 file changed

+40
-2
lines changed

tests/internal/gzip.c

+40-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ void test_compress()
4242

4343
void test_concatenated_gzip_count()
4444
{
45-
int ret;
45+
int ret;
4646
int sample_len;
4747
char *in_data = morpheus;
4848
size_t in_len;
@@ -63,7 +63,7 @@ void test_concatenated_gzip_count()
6363
TEST_CHECK(ret == 0);
6464

6565
border_count = flb_gzip_count(payload, flb_sds_len(payload), NULL, 0);
66-
TEST_CHECK(border_count == 1);
66+
TEST_CHECK(border_count == 2);
6767

6868
flb_free(str);
6969
flb_sds_destroy(payload);
@@ -100,9 +100,47 @@ void test_not_overflow_for_concatenated_gzip()
100100
}
101101
}
102102

103+
104+
void test_decompress_concatenated()
105+
{
106+
int ret;
107+
char *in_data = morpheus;
108+
size_t in_len = strlen(morpheus);
109+
void *gz1, *gz2;
110+
size_t len1, len2;
111+
flb_sds_t full_payload;
112+
void *out;
113+
size_t out_len;
114+
115+
ret = flb_gzip_compress(in_data, in_len, &gz1, &len1);
116+
TEST_CHECK(ret == 0);
117+
118+
ret = flb_gzip_compress(in_data, in_len, &gz2, &len2);
119+
TEST_CHECK(ret == 0);
120+
121+
full_payload = flb_sds_create_len((char *)gz1, len1);
122+
ret = flb_sds_cat_safe(&full_payload, gz2, len2);
123+
TEST_CHECK(ret == 0);
124+
125+
int count = flb_gzip_count(full_payload, flb_sds_len(full_payload), NULL, 0);
126+
TEST_CHECK(count == 2);
127+
128+
ret = flb_gzip_uncompress(full_payload, flb_sds_len(full_payload), &out, &out_len);
129+
TEST_CHECK(ret == 0);
130+
TEST_CHECK(out_len == 2 * in_len);
131+
TEST_CHECK(memcmp(out, morpheus, in_len) == 0);
132+
TEST_CHECK(memcmp((char *)out + in_len, morpheus, in_len) == 0);
133+
134+
flb_free(gz1);
135+
flb_free(gz2);
136+
flb_sds_destroy(full_payload);
137+
flb_free(out);
138+
}
139+
103140
TEST_LIST = {
104141
{"compress", test_compress},
105142
{"count", test_concatenated_gzip_count},
106143
{"not_overflow", test_not_overflow_for_concatenated_gzip},
144+
{"decompress_concatenated", test_decompress_concatenated},
107145
{ 0 }
108146
};

0 commit comments

Comments
 (0)