@@ -42,7 +42,7 @@ void test_compress()
4242
4343void 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+
103140TEST_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