diff --git a/test/cmp_decmp/test_cmp_decmp.c b/test/cmp_decmp/test_cmp_decmp.c
index b356864b17454835d152f024a01f568256c1c81c..ae53c8ac6927cfc42cd2a027b43f9d35af3f9094 100644
--- a/test/cmp_decmp/test_cmp_decmp.c
+++ b/test/cmp_decmp/test_cmp_decmp.c
@@ -1450,20 +1450,29 @@ void test_cmp_decmp_chunk_raw(void)
 void test_cmp_decmp_chunk_worst_case(void)
 {
 	struct chunk_def chunk_def[2] = {{DATA_TYPE_S_FX, 2}, {DATA_TYPE_S_FX_EFX_NCOB_ECOB, 3}};
-	uint32_t chunk_size;
 	enum {CHUNK_SIZE_EXP = 2*sizeof(struct s_fx) + 3*sizeof(struct s_fx_efx_ncob_ecob) + 2*COLLECTION_HDR_SIZE};
+	uint32_t chunk_size = CHUNK_SIZE_EXP;
 	void *chunk = NULL;
 	uint32_t dst[COMPRESS_CHUNK_BOUND(CHUNK_SIZE_EXP, ARRAY_SIZE(chunk_def))/sizeof(uint32_t)];
 	int cmp_size_byte = 0;
 	struct cmp_par par = {0};
 
-	/* generate test data */
-	chunk_size = (uint32_t)generate_random_chunk(chunk, chunk_def, ARRAY_SIZE(chunk_def), &MAX_USED_BITS_SAFE);
-	TEST_ASSERT_EQUAL_size_t(CHUNK_SIZE_EXP, chunk_size);
-	chunk = calloc(1, chunk_size);
-	TEST_ASSERT_NOT_NULL(chunk);
-	chunk_size = (uint32_t)generate_random_chunk(chunk, chunk_def, ARRAY_SIZE(chunk_def), &MAX_USED_BITS_SAFE);
-	TEST_ASSERT_EQUAL_size_t(CHUNK_SIZE_EXP, chunk_size);
+	{ /* generate test data */
+		uint16_t s;
+		uint8_t *p, i;
+
+		chunk = malloc(chunk_size); TEST_ASSERT_NOT_NULL(chunk);
+		generate_random_collection_hdr(chunk, DATA_TYPE_S_FX, 2);
+		p = chunk;
+		p += COLLECTION_HDR_SIZE;
+		for (i = 0; i < cmp_col_get_data_length(chunk); i++)
+			*p++ = i;
+		generate_random_collection_hdr((struct collection_hdr *)p, DATA_TYPE_S_FX_EFX_NCOB_ECOB, 3);
+		s = cmp_col_get_data_length((struct collection_hdr *)p);
+		p += COLLECTION_HDR_SIZE;
+		for (i = 0; i < s; i++)
+			*p++ = i;
+	}
 
 
 	{ /* "compress" data */