From e7536103b074f5d38b90df3369a9b1b4ee462c8e Mon Sep 17 00:00:00 2001
From: Dominik Loidolt <dominik.loidolt@univie.ac.at>
Date: Wed, 17 Apr 2024 16:01:07 +0200
Subject: [PATCH] Remove unused CMP_MODE_STUFF compression mode

---
 lib/common/cmp_support.c              |  19 +---
 lib/common/cmp_support.h              |   4 +-
 lib/decompress/decmp.c                |  24 ----
 lib/icu_compress/cmp_icu.c            |  47 ++------
 test/cmp_decmp/test_cmp_decmp.c       |  19 ----
 test/cmp_entity/test_cmp_entity.c     |   4 +-
 test/cmp_icu/test_cmp_icu.c           | 153 +++-----------------------
 test/cmp_rdcu_cfg/test_cmp_rdcu_cfg.c |   6 +-
 8 files changed, 28 insertions(+), 248 deletions(-)

diff --git a/lib/common/cmp_support.c b/lib/common/cmp_support.c
index a211c3c..b3abb67 100644
--- a/lib/common/cmp_support.c
+++ b/lib/common/cmp_support.c
@@ -128,7 +128,6 @@ int rdcu_supported_cmp_mode_is_used(enum cmp_mode cmp_mode)
 	case CMP_MODE_MODEL_MULTI:
 	case CMP_MODE_DIFF_MULTI:
 		return 1;
-	case CMP_MODE_STUFF:
 	default:
 		return 0;
 	}
@@ -169,16 +168,7 @@ int rdcu_supported_data_type_is_used(enum cmp_data_type data_type)
 
 int cmp_mode_is_supported(enum cmp_mode cmp_mode)
 {
-	switch (cmp_mode) {
-	case CMP_MODE_RAW:
-	case CMP_MODE_MODEL_ZERO:
-	case CMP_MODE_DIFF_ZERO:
-	case CMP_MODE_MODEL_MULTI:
-	case CMP_MODE_DIFF_MULTI:
-	case CMP_MODE_STUFF:
-		return 1;
-	}
-	return 0;
+	return rdcu_supported_cmp_mode_is_used(cmp_mode);
 }
 
 
@@ -665,13 +655,6 @@ static int cmp_pars_are_invalid(uint32_t cmp_par, uint32_t spill, enum cmp_mode
 			cfg_invalid++;
 		}
 
-		break;
-	case CMP_MODE_STUFF:
-		if (cmp_par > MAX_STUFF_CMP_PAR) {
-			debug_print("Error: The selected %s stuff mode compression parameter: %" PRIu32 " is too large. The largest possible value in the selected compression mode is: %u.",
-				    par_name, cmp_par, MAX_STUFF_CMP_PAR);
-			cfg_invalid++;
-		}
 		break;
 	default:
 		debug_print("Error: The compression mode is not supported.");
diff --git a/lib/common/cmp_support.h b/lib/common/cmp_support.h
index 693d7c6..3c4d37f 100644
--- a/lib/common/cmp_support.h
+++ b/lib/common/cmp_support.h
@@ -53,7 +53,6 @@
 #define MIN_NON_IMA_SPILL	2U
 /* for maximum spill value look at cmp_icu_max_spill function */
 #define MAX_ICU_ROUND		3U
-#define MAX_STUFF_CMP_PAR	32U
 
 
 /* default imagette RDCU compression parameters for model compression */
@@ -145,8 +144,7 @@ enum cmp_mode {
 	CMP_MODE_MODEL_ZERO,
 	CMP_MODE_DIFF_ZERO,
 	CMP_MODE_MODEL_MULTI,
-	CMP_MODE_DIFF_MULTI,
-	CMP_MODE_STUFF
+	CMP_MODE_DIFF_MULTI
 };
 
 
diff --git a/lib/decompress/decmp.c b/lib/decompress/decmp.c
index 6d7cf06..8215037 100644
--- a/lib/decompress/decmp.c
+++ b/lib/decompress/decmp.c
@@ -274,24 +274,6 @@ static int decode_multi(const struct decoder_setup *setup, uint32_t *decoded_val
 }
 
 
-/**
- * @brief get the value unencoded with setup->cmp_par_1 bits without any
- *	additional changes from the bitstream
- *
- * @param setup		pointer to the decoder setup
- * @param decoded_value	points to the location where the decoded value is stored
- *
- * @returns 0 on success; otherwise error
- */
-
-static int decode_none(const struct decoder_setup *setup, uint32_t *decoded_value)
-{
-	*decoded_value = bit_read_bits32(setup->dec, setup->encoder_par1);
-
-	return bit_refill(setup->dec) == BIT_OVERFLOW;
-}
-
-
 /**
  * @brief remap an unsigned value back to a signed value
  * @note this is the reverse function of map_to_pos()
@@ -331,10 +313,6 @@ static int decode_value(const struct decoder_setup *setup, uint32_t *decoded_val
 	/* decode the next value from the bitstream */
 	int err = setup->decode_method_f(setup, decoded_value);
 
-	if (setup->decode_method_f == decode_none)
-		/* we are done here in stuff mode */
-		return err;
-
 	/* map the unsigned decode value back to a signed value */
 	*decoded_value = re_map_to_pos(*decoded_value);
 
@@ -377,8 +355,6 @@ static void configure_decoder_setup(struct decoder_setup *setup, struct bit_deco
 		setup->decode_method_f = &decode_multi;
 	else if (zero_escape_mech_is_used(cmp_mode))
 		setup->decode_method_f = &decode_zero;
-	else if (cmp_mode == CMP_MODE_STUFF)
-		setup->decode_method_f = &decode_none;
 	else {
 		debug_print("Error: Compression mode not supported.");
 		assert(0);
diff --git a/lib/icu_compress/cmp_icu.c b/lib/icu_compress/cmp_icu.c
index 45554bf..d08aaa2 100644
--- a/lib/icu_compress/cmp_icu.c
+++ b/lib/icu_compress/cmp_icu.c
@@ -681,32 +681,6 @@ static uint32_t encode_value_multi(uint32_t data, uint32_t model, uint32_t strea
 }
 
 
-/**
- * @brief put the value unencoded with setup->cmp_par_1 bits without any changes
- *	in the bitstream
- *
- * @param value		value to put unchanged in the bitstream
- *	(setup->cmp_par_1 how many bits of the value are used)
- * @param unused	this parameter is ignored
- * @param stream_len	length of the bitstream in bits
- * @param setup		pointer to the encoder setup
- *
- * @returns the bit length of the bitstream with the added unencoded value on
- *	success; negative on error, CMP_ERROR_SMALL_BUF if the bitstream buffer
- *	is too small to put the value in the bitstream
- *
- */
-
-static uint32_t encode_value_none(uint32_t value, uint32_t unused, uint32_t stream_len,
-			     const struct encoder_setup *setup)
-{
-	(void)(unused);
-
-	return put_n_bits32(value, setup->encoder_par1, stream_len,
-			    setup->bitstream_adr, setup->max_stream_len);
-}
-
-
 /**
  * @brief encodes the data with the model and the given setup and put it into
  *	the bitstream
@@ -778,17 +752,14 @@ static void configure_encoder_setup(struct encoder_setup *setup,
 	setup->lossy_par = lossy_par;
 	setup->bitstream_adr = cfg->icu_output_buf;
 	setup->max_stream_len = cmp_buffer_length_to_bits(cfg->buffer_length);
+	setup->encoder_par2 = ilog_2(cmp_par);
+	setup->spillover_par = spillover;
 
-	if (cfg->cmp_mode != CMP_MODE_STUFF) {
-		setup->encoder_par2 = ilog_2(cmp_par);
-		setup->spillover_par = spillover;
-
-		/* for encoder_par1 which are a power of two we can use the faster rice_encoder */
-		if (is_a_pow_of_2(setup->encoder_par1))
-			setup->generate_cw_f = &rice_encoder;
-		else
-			setup->generate_cw_f = &golomb_encoder;
-	}
+	/* for encoder_par1 which are a power of two we can use the faster rice_encoder */
+	if (is_a_pow_of_2(setup->encoder_par1))
+		setup->generate_cw_f = &rice_encoder;
+	else
+		setup->generate_cw_f = &golomb_encoder;
 
 	switch (cfg->cmp_mode) {
 	case CMP_MODE_MODEL_ZERO:
@@ -799,10 +770,6 @@ static void configure_encoder_setup(struct encoder_setup *setup,
 	case CMP_MODE_DIFF_MULTI:
 		setup->encode_method_f = &encode_value_multi;
 		break;
-	case CMP_MODE_STUFF:
-		setup->encode_method_f = &encode_value_none;
-		setup->max_data_bits = cmp_par;
-		break;
 	/* LCOV_EXCL_START */
 	case CMP_MODE_RAW:
 		/* CMP_MODE_RAW is already handled before; nothing to do here */
diff --git a/test/cmp_decmp/test_cmp_decmp.c b/test/cmp_decmp/test_cmp_decmp.c
index b1363a0..a436121 100644
--- a/test/cmp_decmp/test_cmp_decmp.c
+++ b/test/cmp_decmp/test_cmp_decmp.c
@@ -586,25 +586,6 @@ void generate_random_cmp_cfg(struct cmp_cfg *cfg)
 		cfg->spill_par_5 = cmp_rand_between(MIN_NON_IMA_SPILL, cmp_icu_max_spill(cfg->cmp_par_ecob));
 		cfg->spill_par_6 = cmp_rand_between(MIN_NON_IMA_SPILL, cmp_icu_max_spill(cfg->cmp_par_fx_cob_variance));
 	}
-
-#if 0
-	if (cfg->cmp_mode == CMP_MODE_STUFF) {
-		/* cfg->golomb_par = cmp_rand_between(16, MAX_STUFF_CMP_PAR); */
-		cfg->golomb_par = 16;
-		cfg->ap1_golomb_par = cmp_rand_between(0, MAX_STUFF_CMP_PAR);
-		cfg->ap2_golomb_par = cmp_rand_between(0, MAX_STUFF_CMP_PAR);
-		cfg->cmp_par_exp_flags = cmp_rand_between(0, MAX_STUFF_CMP_PAR);
-		cfg->cmp_par_fx = cmp_rand_between(0, MAX_STUFF_CMP_PAR);
-		cfg->cmp_par_ncob = cmp_rand_between(0, MAX_STUFF_CMP_PAR);
-		cfg->cmp_par_efx = cmp_rand_between(0, MAX_STUFF_CMP_PAR);
-		cfg->cmp_par_ecob = cmp_rand_between(0, MAX_STUFF_CMP_PAR);
-		cfg->cmp_par_fx_cob_variance = cmp_rand_between(0, MAX_STUFF_CMP_PAR);
-		cfg->cmp_par_mean = cmp_rand_between(0, MAX_STUFF_CMP_PAR);
-		cfg->cmp_par_variance = cmp_rand_between(0, MAX_STUFF_CMP_PAR);
-		cfg->cmp_par_pixels_error = cmp_rand_between(0, MAX_STUFF_CMP_PAR);
-		return;
-	}
-#endif
 }
 
 
diff --git a/test/cmp_entity/test_cmp_entity.c b/test/cmp_entity/test_cmp_entity.c
index 5bd6b1e..d68b83c 100644
--- a/test/cmp_entity/test_cmp_entity.c
+++ b/test/cmp_entity/test_cmp_entity.c
@@ -488,7 +488,7 @@ void test_ent_cmp_mode(void)
 	enum cmp_mode cmp_mode, cmp_mode_read;
 	uint8_t *entity_p = (uint8_t *)&ent;
 
-	cmp_mode = 0x12;
+	cmp_mode = (enum cmp_mode)0x12;
 	error = cmp_ent_set_cmp_mode(&ent, cmp_mode);
 	TEST_ASSERT_FALSE(error);
 
@@ -499,7 +499,7 @@ void test_ent_cmp_mode(void)
 	TEST_ASSERT_EQUAL_HEX(0x12, entity_p[24]);
 
 	/* error cases */
-	cmp_mode = 0x100;
+	cmp_mode = (enum cmp_mode)0x100;
 	error = cmp_ent_set_cmp_mode(&ent, cmp_mode);
 	TEST_ASSERT_TRUE(error);
 	error = cmp_ent_set_cmp_mode(NULL, cmp_mode);
diff --git a/test/cmp_icu/test_cmp_icu.c b/test/cmp_icu/test_cmp_icu.c
index adc12f0..0555b99 100644
--- a/test/cmp_icu/test_cmp_icu.c
+++ b/test/cmp_icu/test_cmp_icu.c
@@ -36,6 +36,9 @@
 #include "../../lib/icu_compress/cmp_icu.c" /* this is a hack to test static functions */
 
 
+#define MAX_CMP_MODE CMP_MODE_DIFF_MULTI
+
+
 /**
  * @brief  Seeds the pseudo-random number generator used by rand()
  */
@@ -105,7 +108,7 @@ void test_cmp_cfg_icu_create(void)
 	memset(&cfg, 0, sizeof(cfg));
 
 	/* wrong compression mode tests */
-	cmp_mode = CMP_MODE_STUFF + 1;
+	cmp_mode = (enum cmp_mode)(MAX_CMP_MODE + 1);
 	cfg = cmp_cfg_icu_create(data_type, cmp_mode, model_value, lossy_par);
 	TEST_ASSERT_EQUAL_INT(DATA_TYPE_UNKNOWN, cfg.data_type);
 	memset(&cfg, 0, sizeof(cfg));
@@ -116,10 +119,10 @@ void test_cmp_cfg_icu_create(void)
 	memset(&cfg, 0, sizeof(cfg));
 
 	/* this should work */
-	cmp_mode = CMP_MODE_STUFF;
+	cmp_mode = MAX_CMP_MODE;
 	cfg = cmp_cfg_icu_create(data_type, cmp_mode, model_value, lossy_par);
 	TEST_ASSERT_EQUAL_INT(DATA_TYPE_IMAGETTE, cfg.data_type);
-	TEST_ASSERT_EQUAL_INT(CMP_MODE_STUFF, cfg.cmp_mode);
+	TEST_ASSERT_EQUAL_INT(MAX_CMP_MODE, cfg.cmp_mode);
 	TEST_ASSERT_EQUAL_INT(0, cfg.model_value);
 	TEST_ASSERT_EQUAL_INT(0, cfg.round);
 	TEST_ASSERT_EQUAL(&MAX_USED_BITS_SAFE, cfg.max_used_bits);
@@ -145,11 +148,11 @@ void test_cmp_cfg_icu_create(void)
 	TEST_ASSERT_EQUAL(&MAX_USED_BITS_SAFE, cfg.max_used_bits);
 
 	/* no checks for model mode -> no model cmp_mode */
-	cmp_mode = CMP_MODE_STUFF;
+	cmp_mode = CMP_MODE_RAW;
 	model_value = MAX_MODEL_VALUE + 1;
 	cfg = cmp_cfg_icu_create(data_type, cmp_mode, model_value, lossy_par);
 	TEST_ASSERT_EQUAL_INT(DATA_TYPE_IMAGETTE, cfg.data_type);
-	TEST_ASSERT_EQUAL_INT(CMP_MODE_STUFF, cfg.cmp_mode);
+	TEST_ASSERT_EQUAL_INT(CMP_MODE_RAW, cfg.cmp_mode);
 	TEST_ASSERT_EQUAL_INT(MAX_MODEL_VALUE + 1, cfg.model_value);
 	TEST_ASSERT_EQUAL_INT(0, cfg.round);
 	TEST_ASSERT_EQUAL(&MAX_USED_BITS_SAFE, cfg.max_used_bits);
@@ -168,14 +171,14 @@ void test_cmp_cfg_icu_create(void)
 	lossy_par = MAX_ICU_ROUND;
 	cfg = cmp_cfg_icu_create(data_type, cmp_mode, model_value, lossy_par);
 	TEST_ASSERT_EQUAL_INT(DATA_TYPE_IMAGETTE, cfg.data_type);
-	TEST_ASSERT_EQUAL_INT(CMP_MODE_STUFF, cfg.cmp_mode);
+	TEST_ASSERT_EQUAL_INT(CMP_MODE_RAW, cfg.cmp_mode);
 	TEST_ASSERT_EQUAL_INT(16, cfg.model_value);
 	TEST_ASSERT_EQUAL_INT(3, cfg.round);
 	TEST_ASSERT_EQUAL(&MAX_USED_BITS_SAFE, cfg.max_used_bits);
 
 	/* random test */
 	data_type = cmp_rand_between(DATA_TYPE_IMAGETTE, biggest_data_type);
-	cmp_mode = cmp_rand_between(CMP_MODE_RAW, CMP_MODE_STUFF);
+	cmp_mode = cmp_rand_between(CMP_MODE_RAW, MAX_CMP_MODE);
 	model_value = cmp_rand_between(0, MAX_MODEL_VALUE);
 	lossy_par = cmp_rand_between(CMP_LOSSLESS, MAX_ICU_ROUND);
 	cfg = cmp_cfg_icu_create(data_type, cmp_mode, model_value, lossy_par);
@@ -570,38 +573,9 @@ void test_cmp_cfg_icu_imagette(void)
 	error = cmp_cfg_icu_imagette(&cfg, cmp_par, spillover_par);
 	TEST_ASSERT_FALSE(error);
 
-	/* CMP_MODE_STUFF tests */
-	spillover_par = ~0U; /* is ignored */
-
-	/* highest values STUFF MODE */
-	cfg = cmp_cfg_icu_create(DATA_TYPE_IMAGETTE, CMP_MODE_STUFF, ~0U, CMP_LOSSLESS);
-	cmp_par = MAX_STUFF_CMP_PAR;
-	error = cmp_cfg_icu_imagette(&cfg, cmp_par, spillover_par);
-	TEST_ASSERT_FALSE(error);
-	TEST_ASSERT_EQUAL_INT(cfg.golomb_par, 32);
-
-	/* lowest values STUFF MODE */
-	cfg = cmp_cfg_icu_create(DATA_TYPE_IMAGETTE, CMP_MODE_STUFF, ~0U, CMP_LOSSLESS);
-	cmp_par = 0;
-	error = cmp_cfg_icu_imagette(&cfg, cmp_par, spillover_par);
-	TEST_ASSERT_FALSE(error);
-	TEST_ASSERT_EQUAL_INT(cfg.golomb_par, 0);
-
-	/* cmp_par to big */
-	cfg = cmp_cfg_icu_create(DATA_TYPE_SAT_IMAGETTE, CMP_MODE_STUFF, ~0U, CMP_LOSSLESS);
-	cmp_par = MAX_STUFF_CMP_PAR+1;
-	error = cmp_cfg_icu_imagette(&cfg, cmp_par, spillover_par);
-	TEST_ASSERT_TRUE(error);
-
 	/* cfg = NULL test*/
 	error = cmp_cfg_icu_imagette(NULL, cmp_par, spillover_par);
 	TEST_ASSERT_TRUE(error);
-
-	/* invalid compression mode  test*/
-	cfg = cmp_cfg_icu_create(DATA_TYPE_SAT_IMAGETTE, CMP_MODE_STUFF+1, ~0U, CMP_LOSSLESS);
-	cmp_par = MAX_STUFF_CMP_PAR+1;
-	error = cmp_cfg_icu_imagette(&cfg, cmp_par, spillover_par);
-	TEST_ASSERT_TRUE(error);
 }
 
 
@@ -2417,51 +2391,8 @@ void test_compress_imagette_model(void)
 	/* error case: model mode without model data */
 	cfg.model_buf = NULL; /* this is the error */
 	cmp_size = icu_compress_data(&cfg);
-	TEST_ASSERT_EQUAL(-1, cmp_size);
-}
-
-
-/**
- * @test compress_imagette
- */
-
-void test_compress_imagette_stuff(void)
-{
-	uint16_t data[] = {0x0, 0x1, 0x23, 0x42, 0x8000, 0x7FFF, 0xFFFF};
-	uint32_t output_buf[4] = {0};
-	struct cmp_cfg cfg = {0};
-
-	int cmp_size, error;
-	uint8_t output_buf_exp[] = {
-		0x00, 0x00, 0x00, 0x01,
-		0x00, 0x23, 0x00, 0x42,
-		0x80, 0x00, 0x7F, 0xFF,
-		0xFF, 0xFF, 0x00, 0x00};
-	uint32_t *output_buf_exp_32;
-
-	uint32_t samples = 7;
-	uint32_t buffer_length = 8;
-	uint32_t cmp_par = 16; /* how many used bits has the maximum data value */
-	uint32_t output_buf_size;
-
-
-	cfg = cmp_cfg_icu_create(DATA_TYPE_IMAGETTE, CMP_MODE_STUFF,
-				 CMP_PAR_UNUSED, CMP_LOSSLESS);
-	TEST_ASSERT(cfg.data_type != DATA_TYPE_UNKNOWN);
-	output_buf_size = cmp_cfg_icu_buffers(&cfg, data, samples, NULL, NULL,
-					      output_buf, buffer_length);
-	TEST_ASSERT_EQUAL_INT(buffer_length*sizeof(uint16_t), output_buf_size);
-	error = cmp_cfg_icu_imagette(&cfg, cmp_par, CMP_PAR_UNUSED);
-	TEST_ASSERT_FALSE(error);
-
-	cmp_size = icu_compress_data(&cfg);
-
-	output_buf_exp_32 = (uint32_t *)output_buf_exp;
-	TEST_ASSERT_EQUAL_INT(7*16, cmp_size);
-	TEST_ASSERT_EQUAL_HEX16(output_buf_exp_32[0], output_buf[0]);
-	TEST_ASSERT_EQUAL_HEX16(output_buf_exp_32[1], output_buf[1]);
-	TEST_ASSERT_EQUAL_HEX16(output_buf_exp_32[2], output_buf[2]);
-	TEST_ASSERT_EQUAL_HEX16(output_buf_exp_32[3], output_buf[3]);
+	TEST_ASSERT_TRUE(cmp_is_error(cmp_size));
+	TEST_ASSERT_EQUAL(CMP_ERROR_PAR_BUFFERS, cmp_get_error_code(cmp_size));
 }
 
 
@@ -2664,7 +2595,7 @@ void test_compress_imagette_error_cases(void)
 	/* test unknown cmp_mode */
 	cfg.max_used_bits = &MAX_USED_BITS_SAFE;
 	cfg.data_type = DATA_TYPE_F_CAM_IMAGETTE;
-	cfg.cmp_mode = CMP_MODE_STUFF+1;
+	cfg.cmp_mode = (enum cmp_mode)(MAX_CMP_MODE+1);
 	cfg.input_buf = data;
 	cfg.samples = 2;
 	cfg.golomb_par = 1;
@@ -2831,62 +2762,6 @@ void test_compress_s_fx_raw(void)
 }
 
 
-void test_compress_s_fx_staff(void)
-{
-	struct s_fx data[5];
-	struct cmp_cfg cfg = {0};
-	int cmp_size, cmp_size_exp;
-	struct collection_hdr *hdr;
-	uint32_t *cmp_data;
-
-	/* setup configuration */
-	cfg.data_type = DATA_TYPE_S_FX;
-	cfg.cmp_mode = CMP_MODE_STUFF;
-	cfg.samples = 5;
-	cfg.input_buf = malloc(cmp_cal_size_of_data(cfg.samples, cfg.data_type));
-	TEST_ASSERT_NOT_NULL(cfg.input_buf);
-	cfg.buffer_length = 5;
-	cfg.icu_output_buf = malloc(cmp_cal_size_of_data(cfg.buffer_length, cfg.data_type));
-	TEST_ASSERT_NOT_NULL(cfg.icu_output_buf);
-	cfg.cmp_par_exp_flags = 2;
-	cfg.cmp_par_fx = 21;
-	cfg.max_used_bits = &MAX_USED_BITS_V1;
-
-	/* generate input data */
-	hdr = cfg.input_buf;
-	/* use dummy data for the header */
-	memset(hdr, 0x42, sizeof(struct collection_hdr));
-	data[0].exp_flags = 0x0;
-	data[0].fx = 0x0;
-	data[1].exp_flags = 0x1;
-	data[1].fx = 0x1;
-	data[2].exp_flags = 0x2;
-	data[2].fx = 0x23;
-	data[3].exp_flags = 0x3;
-	data[3].fx = 0x42;
-	data[4].exp_flags = 0x0;
-	data[4].fx = 0x001FFFFF;
-	memcpy(hdr->entry, data, sizeof(data));
-
-	cmp_size = icu_compress_data(&cfg);
-
-	cmp_size_exp = 5 * (2 + 21) + COLLECTION_HDR_SIZE * CHAR_BIT;
-	TEST_ASSERT_EQUAL_INT(cmp_size_exp, cmp_size);
-	TEST_ASSERT_FALSE(memcmp(cfg.input_buf, cfg.icu_output_buf, COLLECTION_HDR_SIZE));
-	hdr = (void *)cfg.icu_output_buf;
-	cmp_data = calloc(4, sizeof(*cmp_data));
-	memcpy(cmp_data, hdr->entry, 4 * sizeof(*cmp_data));
-	TEST_ASSERT_EQUAL_HEX(0x00000080, be32_to_cpu(cmp_data[0]));
-	TEST_ASSERT_EQUAL_HEX(0x00060001, be32_to_cpu(cmp_data[1]));
-	TEST_ASSERT_EQUAL_HEX(0x1E000423, be32_to_cpu(cmp_data[2]));
-	TEST_ASSERT_EQUAL_HEX(0xFFFFE000, be32_to_cpu(cmp_data[3]));
-
-	free(cmp_data);
-	free(cfg.input_buf);
-	free(cfg.icu_output_buf);
-}
-
-
 void test_compress_s_fx_model_multi(void)
 {
 	struct s_fx data[6], model[6];
@@ -4737,7 +4612,7 @@ void test_zero_escape_mech_is_used(void)
 {
 	enum cmp_mode cmp_mode;
 
-	for (cmp_mode = 0; cmp_mode <= CMP_MODE_STUFF; cmp_mode++) {
+	for (cmp_mode = 0; cmp_mode <= MAX_CMP_MODE; cmp_mode++) {
 		int res = zero_escape_mech_is_used(cmp_mode);
 
 		if (cmp_mode == CMP_MODE_DIFF_ZERO ||
diff --git a/test/cmp_rdcu_cfg/test_cmp_rdcu_cfg.c b/test/cmp_rdcu_cfg/test_cmp_rdcu_cfg.c
index 36645f3..89ab07d 100644
--- a/test/cmp_rdcu_cfg/test_cmp_rdcu_cfg.c
+++ b/test/cmp_rdcu_cfg/test_cmp_rdcu_cfg.c
@@ -61,16 +61,16 @@ void test_rdcu_cfg_create(void)
 
 
 	/* wrong compression mode tests */
-	cmp_mode = CMP_MODE_STUFF; /* not a RDCU compression mode */
+	cmp_mode = (enum cmp_mode)(CMP_MODE_DIFF_MULTI+1); /* not a RDCU compression mode */
 	cfg = rdcu_cfg_create(data_type, cmp_mode, model_value, lossy_par);
 	TEST_ASSERT_EQUAL(DATA_TYPE_UNKNOWN, cfg.data_type);
 
-	cmp_mode = -1U;
+	cmp_mode = (enum cmp_mode)-1U;
 	cfg = rdcu_cfg_create(data_type, cmp_mode, model_value, lossy_par);
 	TEST_ASSERT_EQUAL(DATA_TYPE_UNKNOWN, cfg.data_type);
 
 	/* this should work */
-	cmp_mode = 4;
+	cmp_mode = (enum cmp_mode)4;
 	cfg = rdcu_cfg_create(data_type, cmp_mode, model_value, lossy_par);
 	TEST_ASSERT_EQUAL(data_type, cfg.data_type);
 	TEST_ASSERT_EQUAL(cmp_mode, cfg.cmp_mode);
-- 
GitLab